trait DynamoDBTransactHandler[Envelope] extends HandlerLifecycle
Implement this interface for the Envelope handler for DynamoDB transactional projections.
It can be stateful, with variables and mutable data structures. It is invoked by the Projection
machinery one
envelope at a time and visibility guarantees between the invocations are handled automatically, i.e. no volatile or
other concurrency primitives are needed for managing the state.
Supported error handling strategies for when processing an Envelope
fails can be defined in configuration or using
the withRecoveryStrategy
method of a Projection
implementation.
- Annotations
- @ApiMayChange()
- Source
- DynamoDBTransactHandler.scala
- Alphabetic
- By Inheritance
- DynamoDBTransactHandler
- HandlerLifecycle
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Abstract Value Members
- abstract def process(envelope: Envelope): Future[Iterable[TransactWriteItem]]
The
process
method is invoked for eachEnvelope
, and should return DynamoDBTransactWriteItem
s to atomically write along with the projection offset.The
process
method is invoked for eachEnvelope
, and should return DynamoDBTransactWriteItem
s to atomically write along with the projection offset.One envelope is processed at a time. It will not be invoked with the next envelope until the returned Future has completed and the given items written in a transaction.
Concrete Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @IntrinsicCandidate() @native()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @IntrinsicCandidate() @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @IntrinsicCandidate() @native()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @IntrinsicCandidate() @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @IntrinsicCandidate() @native()
- def start(): Future[Done]
Invoked when the projection is starting, before first envelope is processed.
Invoked when the projection is starting, before first envelope is processed. Can be overridden to implement initialization. It is also called when the
Projection
is restarted after a failure.- Definition Classes
- HandlerLifecycle
- def stop(): Future[Done]
Invoked when the projection has been stopped.
Invoked when the projection has been stopped. Can be overridden to implement resource cleanup. It is also called when the
Projection
is restarted after a failure.- Definition Classes
- HandlerLifecycle
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])