Each step in a transaction chain is defined by an AsyncTransactionFunction. It receives
a TransactionContext and the output value of the previous transaction step as its input
parameters. The method should return an ApiFuture that will return the result of this
step.
This method is called when this transaction step is executed. The input value is the result
of the previous step, and this method will only be called if the previous step executed
successfully.
an ApiFuture that will return the result of this step, and that will be the
input of the next transaction step. This method should never return null.
Instead, if the method does not have a return value, the method should return
ApiFutures#immediateFuture(null).
[[["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-08-28 UTC."],[],[],null,["# Interface AsyncTransactionManager.AsyncTransactionFunction<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.AsyncTransactionFunction)\n- [6.98.0](/java/docs/reference/google-cloud-spanner/6.98.0/com.google.cloud.spanner.AsyncTransactionManager.AsyncTransactionFunction)\n- [6.97.1](/java/docs/reference/google-cloud-spanner/6.97.1/com.google.cloud.spanner.AsyncTransactionManager.AsyncTransactionFunction)\n- [6.96.1](/java/docs/reference/google-cloud-spanner/6.96.1/com.google.cloud.spanner.AsyncTransactionManager.AsyncTransactionFunction)\n- [6.95.1](/java/docs/reference/google-cloud-spanner/6.95.1/com.google.cloud.spanner.AsyncTransactionManager.AsyncTransactionFunction)\n- [6.94.0](/java/docs/reference/google-cloud-spanner/6.94.0/com.google.cloud.spanner.AsyncTransactionManager.AsyncTransactionFunction)\n- [6.93.0](/java/docs/reference/google-cloud-spanner/6.93.0/com.google.cloud.spanner.AsyncTransactionManager.AsyncTransactionFunction)\n- [6.89.0](/java/docs/reference/google-cloud-spanner/6.89.0/com.google.cloud.spanner.AsyncTransactionManager.AsyncTransactionFunction)\n- [6.88.0](/java/docs/reference/google-cloud-spanner/6.88.0/com.google.cloud.spanner.AsyncTransactionManager.AsyncTransactionFunction)\n- [6.87.0](/java/docs/reference/google-cloud-spanner/6.87.0/com.google.cloud.spanner.AsyncTransactionManager.AsyncTransactionFunction)\n- [6.86.0](/java/docs/reference/google-cloud-spanner/6.86.0/com.google.cloud.spanner.AsyncTransactionManager.AsyncTransactionFunction)\n- [6.85.0](/java/docs/reference/google-cloud-spanner/6.85.0/com.google.cloud.spanner.AsyncTransactionManager.AsyncTransactionFunction)\n- [6.83.0](/java/docs/reference/google-cloud-spanner/6.83.0/com.google.cloud.spanner.AsyncTransactionManager.AsyncTransactionFunction)\n- [6.82.0](/java/docs/reference/google-cloud-spanner/6.82.0/com.google.cloud.spanner.AsyncTransactionManager.AsyncTransactionFunction)\n- [6.80.1](/java/docs/reference/google-cloud-spanner/6.80.1/com.google.cloud.spanner.AsyncTransactionManager.AsyncTransactionFunction)\n- [6.79.0](/java/docs/reference/google-cloud-spanner/6.79.0/com.google.cloud.spanner.AsyncTransactionManager.AsyncTransactionFunction)\n- [6.77.0](/java/docs/reference/google-cloud-spanner/6.77.0/com.google.cloud.spanner.AsyncTransactionManager.AsyncTransactionFunction)\n- [6.74.1](/java/docs/reference/google-cloud-spanner/6.74.1/com.google.cloud.spanner.AsyncTransactionManager.AsyncTransactionFunction)\n- [6.72.0](/java/docs/reference/google-cloud-spanner/6.72.0/com.google.cloud.spanner.AsyncTransactionManager.AsyncTransactionFunction)\n- [6.71.0](/java/docs/reference/google-cloud-spanner/6.71.0/com.google.cloud.spanner.AsyncTransactionManager.AsyncTransactionFunction)\n- [6.69.0](/java/docs/reference/google-cloud-spanner/6.69.0/com.google.cloud.spanner.AsyncTransactionManager.AsyncTransactionFunction)\n- [6.68.0](/java/docs/reference/google-cloud-spanner/6.68.0/com.google.cloud.spanner.AsyncTransactionManager.AsyncTransactionFunction)\n- [6.66.0](/java/docs/reference/google-cloud-spanner/6.66.0/com.google.cloud.spanner.AsyncTransactionManager.AsyncTransactionFunction)\n- [6.65.1](/java/docs/reference/google-cloud-spanner/6.65.1/com.google.cloud.spanner.AsyncTransactionManager.AsyncTransactionFunction)\n- [6.62.0](/java/docs/reference/google-cloud-spanner/6.62.0/com.google.cloud.spanner.AsyncTransactionManager.AsyncTransactionFunction)\n- [6.60.0](/java/docs/reference/google-cloud-spanner/6.60.0/com.google.cloud.spanner.AsyncTransactionManager.AsyncTransactionFunction)\n- [6.58.0](/java/docs/reference/google-cloud-spanner/6.58.0/com.google.cloud.spanner.AsyncTransactionManager.AsyncTransactionFunction)\n- [6.57.0](/java/docs/reference/google-cloud-spanner/6.57.0/com.google.cloud.spanner.AsyncTransactionManager.AsyncTransactionFunction)\n- [6.56.0](/java/docs/reference/google-cloud-spanner/6.56.0/com.google.cloud.spanner.AsyncTransactionManager.AsyncTransactionFunction)\n- [6.55.0](/java/docs/reference/google-cloud-spanner/6.55.0/com.google.cloud.spanner.AsyncTransactionManager.AsyncTransactionFunction)\n- [6.54.0](/java/docs/reference/google-cloud-spanner/6.54.0/com.google.cloud.spanner.AsyncTransactionManager.AsyncTransactionFunction)\n- [6.53.0](/java/docs/reference/google-cloud-spanner/6.53.0/com.google.cloud.spanner.AsyncTransactionManager.AsyncTransactionFunction)\n- [6.52.1](/java/docs/reference/google-cloud-spanner/6.52.1/com.google.cloud.spanner.AsyncTransactionManager.AsyncTransactionFunction)\n- [6.51.0](/java/docs/reference/google-cloud-spanner/6.51.0/com.google.cloud.spanner.AsyncTransactionManager.AsyncTransactionFunction)\n- [6.50.1](/java/docs/reference/google-cloud-spanner/6.50.1/com.google.cloud.spanner.AsyncTransactionManager.AsyncTransactionFunction)\n- [6.49.0](/java/docs/reference/google-cloud-spanner/6.49.0/com.google.cloud.spanner.AsyncTransactionManager.AsyncTransactionFunction)\n- [6.25.1](/java/docs/reference/google-cloud-spanner/6.25.1/com.google.cloud.spanner.AsyncTransactionManager.AsyncTransactionFunction)\n- [6.24.0](/java/docs/reference/google-cloud-spanner/6.24.0/com.google.cloud.spanner.AsyncTransactionManager.AsyncTransactionFunction)\n- [6.23.4](/java/docs/reference/google-cloud-spanner/6.23.4/com.google.cloud.spanner.AsyncTransactionManager.AsyncTransactionFunction)\n- [6.22.0](/java/docs/reference/google-cloud-spanner/6.22.0/com.google.cloud.spanner.AsyncTransactionManager.AsyncTransactionFunction)\n- [6.21.2](/java/docs/reference/google-cloud-spanner/6.21.2/com.google.cloud.spanner.AsyncTransactionManager.AsyncTransactionFunction)\n- [6.20.0](/java/docs/reference/google-cloud-spanner/6.20.0/com.google.cloud.spanner.AsyncTransactionManager.AsyncTransactionFunction)\n- [6.19.1](/java/docs/reference/google-cloud-spanner/6.19.1/com.google.cloud.spanner.AsyncTransactionManager.AsyncTransactionFunction)\n- [6.18.0](/java/docs/reference/google-cloud-spanner/6.18.0/com.google.cloud.spanner.AsyncTransactionManager.AsyncTransactionFunction)\n- [6.17.4](/java/docs/reference/google-cloud-spanner/6.17.4/com.google.cloud.spanner.AsyncTransactionManager.AsyncTransactionFunction)\n- [6.14.1](/java/docs/reference/google-cloud-spanner/6.14.1/com.google.cloud.spanner.AsyncTransactionManager.AsyncTransactionFunction) \n\n public static interface AsyncTransactionManager.AsyncTransactionFunction\u003cI,O\u003e\n\nEach step in a transaction chain is defined by an AsyncTransactionFunction. It receives\na [TransactionContext](/java/docs/reference/google-cloud-spanner/latest/com.google.cloud.spanner.TransactionContext) and the output value of the previous transaction step as its input\nparameters. The method should return an [ApiFuture](https://cloud.google.com/java/docs/reference/api-common/latest/com.google.api.core.ApiFuture.html) that will return the result of this\nstep.\n\nMethods\n-------\n\n### apply(TransactionContext txn, I input)\n\n public abstract ApiFuture\u003cO\u003e apply(TransactionContext txn, I input)\n\nThis method is called when this transaction step is executed. The input value is the result\nof the previous step, and this method will only be called if the previous step executed\nsuccessfully."]]