Packages

class AsyncTransactions extends AnyRef

An asynchronous version of Transactions, allowing transactions to be created and run in an asynchronous manner using scala.concurrent.Future.

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. AsyncTransactions
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Value Members

  1. def run(transactionLogic: (AsyncTransactionAttemptContext) => Future[Unit]): Future[TransactionResult]

    A convenience overload of AsyncTransactions.run() that provides default options.

  2. def run(transactionLogic: (AsyncTransactionAttemptContext) => Future[Unit], options: TransactionOptions): Future[TransactionResult]

    Runs the supplied transactional logic until success or failure.

    Runs the supplied transactional logic until success or failure.

    This is the asynchronous version of Transactions.run(), so to cover the differences:

    • The transaction logic is supplied with a AsyncTransactionAttemptContext, which contains asynchronous methods to allow it to read, mutate, insert and delete documents.
    • The transaction logic should return a Future[Unit].
    • This method returns a Future[TransactionResult], which should be handled as a normal Scala Future.
    transactionLogic

    the application's transaction logic

    options

    the configuration to use for this transaction

    returns

    there is no need to check the returned TransactionResult, as success is implied by the lack of a raised Future.failed(). It contains information useful only for debugging and logging. Will return Future.failed(TransactionFailedException) or a derived exception if the transaction fails for any reason, possibly after multiple retries. The exception contains further details of the error.