Sets the first step to execute as part of this transaction after the transaction has started
using the specified executor. 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.
[[["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.TransactionContextFuture (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.TransactionContextFuture)\n- [6.98.0](/java/docs/reference/google-cloud-spanner/6.98.0/com.google.cloud.spanner.AsyncTransactionManager.TransactionContextFuture)\n- [6.97.1](/java/docs/reference/google-cloud-spanner/6.97.1/com.google.cloud.spanner.AsyncTransactionManager.TransactionContextFuture)\n- [6.96.1](/java/docs/reference/google-cloud-spanner/6.96.1/com.google.cloud.spanner.AsyncTransactionManager.TransactionContextFuture)\n- [6.95.1](/java/docs/reference/google-cloud-spanner/6.95.1/com.google.cloud.spanner.AsyncTransactionManager.TransactionContextFuture)\n- [6.94.0](/java/docs/reference/google-cloud-spanner/6.94.0/com.google.cloud.spanner.AsyncTransactionManager.TransactionContextFuture)\n- [6.93.0](/java/docs/reference/google-cloud-spanner/6.93.0/com.google.cloud.spanner.AsyncTransactionManager.TransactionContextFuture)\n- [6.89.0](/java/docs/reference/google-cloud-spanner/6.89.0/com.google.cloud.spanner.AsyncTransactionManager.TransactionContextFuture)\n- [6.88.0](/java/docs/reference/google-cloud-spanner/6.88.0/com.google.cloud.spanner.AsyncTransactionManager.TransactionContextFuture)\n- [6.87.0](/java/docs/reference/google-cloud-spanner/6.87.0/com.google.cloud.spanner.AsyncTransactionManager.TransactionContextFuture)\n- [6.86.0](/java/docs/reference/google-cloud-spanner/6.86.0/com.google.cloud.spanner.AsyncTransactionManager.TransactionContextFuture)\n- [6.85.0](/java/docs/reference/google-cloud-spanner/6.85.0/com.google.cloud.spanner.AsyncTransactionManager.TransactionContextFuture)\n- [6.83.0](/java/docs/reference/google-cloud-spanner/6.83.0/com.google.cloud.spanner.AsyncTransactionManager.TransactionContextFuture)\n- [6.82.0](/java/docs/reference/google-cloud-spanner/6.82.0/com.google.cloud.spanner.AsyncTransactionManager.TransactionContextFuture)\n- [6.80.1](/java/docs/reference/google-cloud-spanner/6.80.1/com.google.cloud.spanner.AsyncTransactionManager.TransactionContextFuture)\n- [6.79.0](/java/docs/reference/google-cloud-spanner/6.79.0/com.google.cloud.spanner.AsyncTransactionManager.TransactionContextFuture)\n- [6.77.0](/java/docs/reference/google-cloud-spanner/6.77.0/com.google.cloud.spanner.AsyncTransactionManager.TransactionContextFuture)\n- [6.74.1](/java/docs/reference/google-cloud-spanner/6.74.1/com.google.cloud.spanner.AsyncTransactionManager.TransactionContextFuture)\n- [6.72.0](/java/docs/reference/google-cloud-spanner/6.72.0/com.google.cloud.spanner.AsyncTransactionManager.TransactionContextFuture)\n- [6.71.0](/java/docs/reference/google-cloud-spanner/6.71.0/com.google.cloud.spanner.AsyncTransactionManager.TransactionContextFuture)\n- [6.69.0](/java/docs/reference/google-cloud-spanner/6.69.0/com.google.cloud.spanner.AsyncTransactionManager.TransactionContextFuture)\n- [6.68.0](/java/docs/reference/google-cloud-spanner/6.68.0/com.google.cloud.spanner.AsyncTransactionManager.TransactionContextFuture)\n- [6.66.0](/java/docs/reference/google-cloud-spanner/6.66.0/com.google.cloud.spanner.AsyncTransactionManager.TransactionContextFuture)\n- [6.65.1](/java/docs/reference/google-cloud-spanner/6.65.1/com.google.cloud.spanner.AsyncTransactionManager.TransactionContextFuture)\n- [6.62.0](/java/docs/reference/google-cloud-spanner/6.62.0/com.google.cloud.spanner.AsyncTransactionManager.TransactionContextFuture)\n- [6.60.0](/java/docs/reference/google-cloud-spanner/6.60.0/com.google.cloud.spanner.AsyncTransactionManager.TransactionContextFuture)\n- [6.58.0](/java/docs/reference/google-cloud-spanner/6.58.0/com.google.cloud.spanner.AsyncTransactionManager.TransactionContextFuture)\n- [6.57.0](/java/docs/reference/google-cloud-spanner/6.57.0/com.google.cloud.spanner.AsyncTransactionManager.TransactionContextFuture)\n- [6.56.0](/java/docs/reference/google-cloud-spanner/6.56.0/com.google.cloud.spanner.AsyncTransactionManager.TransactionContextFuture)\n- [6.55.0](/java/docs/reference/google-cloud-spanner/6.55.0/com.google.cloud.spanner.AsyncTransactionManager.TransactionContextFuture)\n- [6.54.0](/java/docs/reference/google-cloud-spanner/6.54.0/com.google.cloud.spanner.AsyncTransactionManager.TransactionContextFuture)\n- [6.53.0](/java/docs/reference/google-cloud-spanner/6.53.0/com.google.cloud.spanner.AsyncTransactionManager.TransactionContextFuture)\n- [6.52.1](/java/docs/reference/google-cloud-spanner/6.52.1/com.google.cloud.spanner.AsyncTransactionManager.TransactionContextFuture)\n- [6.51.0](/java/docs/reference/google-cloud-spanner/6.51.0/com.google.cloud.spanner.AsyncTransactionManager.TransactionContextFuture)\n- [6.50.1](/java/docs/reference/google-cloud-spanner/6.50.1/com.google.cloud.spanner.AsyncTransactionManager.TransactionContextFuture)\n- [6.49.0](/java/docs/reference/google-cloud-spanner/6.49.0/com.google.cloud.spanner.AsyncTransactionManager.TransactionContextFuture)\n- [6.25.1](/java/docs/reference/google-cloud-spanner/6.25.1/com.google.cloud.spanner.AsyncTransactionManager.TransactionContextFuture)\n- [6.24.0](/java/docs/reference/google-cloud-spanner/6.24.0/com.google.cloud.spanner.AsyncTransactionManager.TransactionContextFuture)\n- [6.23.4](/java/docs/reference/google-cloud-spanner/6.23.4/com.google.cloud.spanner.AsyncTransactionManager.TransactionContextFuture)\n- [6.22.0](/java/docs/reference/google-cloud-spanner/6.22.0/com.google.cloud.spanner.AsyncTransactionManager.TransactionContextFuture)\n- [6.21.2](/java/docs/reference/google-cloud-spanner/6.21.2/com.google.cloud.spanner.AsyncTransactionManager.TransactionContextFuture)\n- [6.20.0](/java/docs/reference/google-cloud-spanner/6.20.0/com.google.cloud.spanner.AsyncTransactionManager.TransactionContextFuture)\n- [6.19.1](/java/docs/reference/google-cloud-spanner/6.19.1/com.google.cloud.spanner.AsyncTransactionManager.TransactionContextFuture)\n- [6.18.0](/java/docs/reference/google-cloud-spanner/6.18.0/com.google.cloud.spanner.AsyncTransactionManager.TransactionContextFuture)\n- [6.17.4](/java/docs/reference/google-cloud-spanner/6.17.4/com.google.cloud.spanner.AsyncTransactionManager.TransactionContextFuture)\n- [6.14.1](/java/docs/reference/google-cloud-spanner/6.14.1/com.google.cloud.spanner.AsyncTransactionManager.TransactionContextFuture) \n\n public static interface AsyncTransactionManager.TransactionContextFuture extends ApiFuture\u003cTransactionContext\u003e\n\n[ApiFuture](https://cloud.google.com/java/docs/reference/api-common/latest/com.google.api.core.ApiFuture.html) that returns a [TransactionContext](/java/docs/reference/google-cloud-spanner/latest/com.google.cloud.spanner.TransactionContext) and that supports chaining of\nmultiple TransactionContextFutures to form a transaction. \n\nImplements\n----------\n\ncom.google.api.core.ApiFuture\\\u003ccom.google.cloud.spanner.TransactionContext\\\u003e\n\nMethods\n-------\n\n### \\\u003cO\\\u003ethen(AsyncTransactionManager.AsyncTransactionFunction\\\u003cVoid,O\\\u003e function, Executor executor)\n\n public abstract AsyncTransactionManager.AsyncTransactionStep\u003cVoid,O\u003e \u003cO\u003ethen(AsyncTransactionManager.AsyncTransactionFunction\u003cVoid,O\u003e function, Executor executor)\n\nSets the first step to execute as part of this transaction after the transaction has started\nusing the specified executor. MoreExecutors#directExecutor() can be be used for\nlightweight functions, but should be avoided for heavy or blocking operations. See also\nListenableFuture#addListener(Runnable, Executor) for further information."]]