AsyncTransactionStep is returned by TransactionContextFuture#then(AsyncTransactionFunction, Executor) and AsyncTransactionStep#then(AsyncTransactionFunction, Executor) and allows transaction steps
that should be executed serially to be chained together. Each step can contain one or more
statements that may execute in parallel.
Adds a step to the transaction chain that should be executed using the specified executor.
This step is guaranteed to be executed only after the previous step executed successfully.
MoreExecutors#directExecutor() can be be used for lightweight functions, but should
be avoided for heavy or blocking operations. See also ListenableFuture#addListener(Runnable, Executor) for further information.
Commits the transaction and returns a CommitTimestampFuture that will return the
commit timestamp of the transaction, or throw the first uncaught exception in the transaction
chain as an ExecutionException.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-09-04 UTC."],[],[],null,["# Interface AsyncTransactionManager.AsyncTransactionStep<I,O> (6.98.1)\n\nVersion latestkeyboard_arrow_down\n\n- [6.98.1 (latest)](/java/docs/reference/google-cloud-spanner/latest/com.google.cloud.spanner.AsyncTransactionManager.AsyncTransactionStep)\n- [6.98.0](/java/docs/reference/google-cloud-spanner/6.98.0/com.google.cloud.spanner.AsyncTransactionManager.AsyncTransactionStep)\n- [6.97.1](/java/docs/reference/google-cloud-spanner/6.97.1/com.google.cloud.spanner.AsyncTransactionManager.AsyncTransactionStep)\n- [6.96.1](/java/docs/reference/google-cloud-spanner/6.96.1/com.google.cloud.spanner.AsyncTransactionManager.AsyncTransactionStep)\n- [6.95.1](/java/docs/reference/google-cloud-spanner/6.95.1/com.google.cloud.spanner.AsyncTransactionManager.AsyncTransactionStep)\n- [6.94.0](/java/docs/reference/google-cloud-spanner/6.94.0/com.google.cloud.spanner.AsyncTransactionManager.AsyncTransactionStep)\n- [6.93.0](/java/docs/reference/google-cloud-spanner/6.93.0/com.google.cloud.spanner.AsyncTransactionManager.AsyncTransactionStep)\n- [6.89.0](/java/docs/reference/google-cloud-spanner/6.89.0/com.google.cloud.spanner.AsyncTransactionManager.AsyncTransactionStep)\n- [6.88.0](/java/docs/reference/google-cloud-spanner/6.88.0/com.google.cloud.spanner.AsyncTransactionManager.AsyncTransactionStep)\n- [6.87.0](/java/docs/reference/google-cloud-spanner/6.87.0/com.google.cloud.spanner.AsyncTransactionManager.AsyncTransactionStep)\n- [6.86.0](/java/docs/reference/google-cloud-spanner/6.86.0/com.google.cloud.spanner.AsyncTransactionManager.AsyncTransactionStep)\n- [6.85.0](/java/docs/reference/google-cloud-spanner/6.85.0/com.google.cloud.spanner.AsyncTransactionManager.AsyncTransactionStep)\n- [6.83.0](/java/docs/reference/google-cloud-spanner/6.83.0/com.google.cloud.spanner.AsyncTransactionManager.AsyncTransactionStep)\n- [6.82.0](/java/docs/reference/google-cloud-spanner/6.82.0/com.google.cloud.spanner.AsyncTransactionManager.AsyncTransactionStep)\n- [6.80.1](/java/docs/reference/google-cloud-spanner/6.80.1/com.google.cloud.spanner.AsyncTransactionManager.AsyncTransactionStep)\n- [6.79.0](/java/docs/reference/google-cloud-spanner/6.79.0/com.google.cloud.spanner.AsyncTransactionManager.AsyncTransactionStep)\n- [6.77.0](/java/docs/reference/google-cloud-spanner/6.77.0/com.google.cloud.spanner.AsyncTransactionManager.AsyncTransactionStep)\n- [6.74.1](/java/docs/reference/google-cloud-spanner/6.74.1/com.google.cloud.spanner.AsyncTransactionManager.AsyncTransactionStep)\n- [6.72.0](/java/docs/reference/google-cloud-spanner/6.72.0/com.google.cloud.spanner.AsyncTransactionManager.AsyncTransactionStep)\n- [6.71.0](/java/docs/reference/google-cloud-spanner/6.71.0/com.google.cloud.spanner.AsyncTransactionManager.AsyncTransactionStep)\n- [6.69.0](/java/docs/reference/google-cloud-spanner/6.69.0/com.google.cloud.spanner.AsyncTransactionManager.AsyncTransactionStep)\n- [6.68.0](/java/docs/reference/google-cloud-spanner/6.68.0/com.google.cloud.spanner.AsyncTransactionManager.AsyncTransactionStep)\n- [6.66.0](/java/docs/reference/google-cloud-spanner/6.66.0/com.google.cloud.spanner.AsyncTransactionManager.AsyncTransactionStep)\n- [6.65.1](/java/docs/reference/google-cloud-spanner/6.65.1/com.google.cloud.spanner.AsyncTransactionManager.AsyncTransactionStep)\n- [6.62.0](/java/docs/reference/google-cloud-spanner/6.62.0/com.google.cloud.spanner.AsyncTransactionManager.AsyncTransactionStep)\n- [6.60.0](/java/docs/reference/google-cloud-spanner/6.60.0/com.google.cloud.spanner.AsyncTransactionManager.AsyncTransactionStep)\n- [6.58.0](/java/docs/reference/google-cloud-spanner/6.58.0/com.google.cloud.spanner.AsyncTransactionManager.AsyncTransactionStep)\n- [6.57.0](/java/docs/reference/google-cloud-spanner/6.57.0/com.google.cloud.spanner.AsyncTransactionManager.AsyncTransactionStep)\n- [6.56.0](/java/docs/reference/google-cloud-spanner/6.56.0/com.google.cloud.spanner.AsyncTransactionManager.AsyncTransactionStep)\n- [6.55.0](/java/docs/reference/google-cloud-spanner/6.55.0/com.google.cloud.spanner.AsyncTransactionManager.AsyncTransactionStep)\n- [6.54.0](/java/docs/reference/google-cloud-spanner/6.54.0/com.google.cloud.spanner.AsyncTransactionManager.AsyncTransactionStep)\n- [6.53.0](/java/docs/reference/google-cloud-spanner/6.53.0/com.google.cloud.spanner.AsyncTransactionManager.AsyncTransactionStep)\n- [6.52.1](/java/docs/reference/google-cloud-spanner/6.52.1/com.google.cloud.spanner.AsyncTransactionManager.AsyncTransactionStep)\n- [6.51.0](/java/docs/reference/google-cloud-spanner/6.51.0/com.google.cloud.spanner.AsyncTransactionManager.AsyncTransactionStep)\n- [6.50.1](/java/docs/reference/google-cloud-spanner/6.50.1/com.google.cloud.spanner.AsyncTransactionManager.AsyncTransactionStep)\n- [6.49.0](/java/docs/reference/google-cloud-spanner/6.49.0/com.google.cloud.spanner.AsyncTransactionManager.AsyncTransactionStep)\n- [6.25.1](/java/docs/reference/google-cloud-spanner/6.25.1/com.google.cloud.spanner.AsyncTransactionManager.AsyncTransactionStep)\n- [6.24.0](/java/docs/reference/google-cloud-spanner/6.24.0/com.google.cloud.spanner.AsyncTransactionManager.AsyncTransactionStep)\n- [6.23.4](/java/docs/reference/google-cloud-spanner/6.23.4/com.google.cloud.spanner.AsyncTransactionManager.AsyncTransactionStep)\n- [6.22.0](/java/docs/reference/google-cloud-spanner/6.22.0/com.google.cloud.spanner.AsyncTransactionManager.AsyncTransactionStep)\n- [6.21.2](/java/docs/reference/google-cloud-spanner/6.21.2/com.google.cloud.spanner.AsyncTransactionManager.AsyncTransactionStep)\n- [6.20.0](/java/docs/reference/google-cloud-spanner/6.20.0/com.google.cloud.spanner.AsyncTransactionManager.AsyncTransactionStep)\n- [6.19.1](/java/docs/reference/google-cloud-spanner/6.19.1/com.google.cloud.spanner.AsyncTransactionManager.AsyncTransactionStep)\n- [6.18.0](/java/docs/reference/google-cloud-spanner/6.18.0/com.google.cloud.spanner.AsyncTransactionManager.AsyncTransactionStep)\n- [6.17.4](/java/docs/reference/google-cloud-spanner/6.17.4/com.google.cloud.spanner.AsyncTransactionManager.AsyncTransactionStep)\n- [6.14.1](/java/docs/reference/google-cloud-spanner/6.14.1/com.google.cloud.spanner.AsyncTransactionManager.AsyncTransactionStep) \n\n public static interface AsyncTransactionManager.AsyncTransactionStep\u003cI,O\u003e extends ApiFuture\u003cO\u003e\n\n[AsyncTransactionStep](/java/docs/reference/google-cloud-spanner/latest/com.google.cloud.spanner.AsyncTransactionManager.AsyncTransactionStep) is returned by TransactionContextFuture#then(AsyncTransactionFunction, Executor) and [AsyncTransactionStep#then(AsyncTransactionFunction, Executor)](/java/docs/reference/google-cloud-spanner/latest/com.google.cloud.spanner.AsyncTransactionManager.AsyncTransactionStep#com_google_cloud_spanner_AsyncTransactionManager_AsyncTransactionStep_then_) and allows transaction steps\nthat should be executed serially to be chained together. Each step can contain one or more\nstatements that may execute in parallel.\n\nExample usage: \n\n\n final String column = \"FirstName\";\n final long singerId = 1L;\n AsyncTransactionManager manager = client.transactionManagerAsync();\n TransactionContextFuture txnFuture = manager.beginAsync();\n txnFuture\n .then((transaction, ignored) -\u003e\n transaction.readRowAsync(\"Singers\", Key.of(singerId), Collections.singleton(column)),\n executor)\n .then((transaction, row) -\u003e\n transaction.bufferAsync(\n Mutation.newUpdateBuilder(\"Singers\")\n .set(column).to(row.getString(column).toUpperCase())\n .build()),\n executor)\n .commitAsync();\n \nImplements\n----------\n\ncom.google.api.core.ApiFuture\\\u003cO\\\u003e\n\nMethods\n-------\n\n### \\\u003cRES\\\u003ethen(AsyncTransactionManager.AsyncTransactionFunction\\\u003cO,RES\\\u003e next, Executor executor)\n\n public abstract AsyncTransactionManager.AsyncTransactionStep\u003cO,RES\u003e \u003cRES\u003ethen(AsyncTransactionManager.AsyncTransactionFunction\u003cO,RES\u003e next, Executor executor)\n\nAdds a step to the transaction chain that should be executed using the specified executor.\nThis step is guaranteed to be executed only after the previous step executed successfully.\nMoreExecutors#directExecutor() can be be used for lightweight functions, but should\nbe avoided for heavy or blocking operations. See also ListenableFuture#addListener(Runnable, Executor) for further information.\n\n### commitAsync()\n\n public abstract AsyncTransactionManager.CommitTimestampFuture commitAsync()\n\nCommits the transaction and returns a CommitTimestampFuture that will return the\ncommit timestamp of the transaction, or throw the first uncaught exception in the transaction\nchain as an ExecutionException."]]