* Implementation MUST NOT do any blocking calls during this callback, all
* pre-commit preparation SHOULD happen asynchronously and MUST result in
* completing returned future object.
* Implementation MUST NOT do any blocking calls during this callback, all
* pre-commit preparation SHOULD happen asynchronously and MUST result in
* completing returned future object.