Package

no.nextgentel.oss.akkatools

aggregate

Permalink

package aggregate

Visibility
  1. Public
  2. All

Type Members

  1. trait AggregateCmd extends AnyRef

    Permalink
  2. class AggregateCmdMessageExtractor extends HashCodeMessageExtractor

    Permalink
  3. class AggregateError extends RuntimeException

    Permalink
  4. abstract class AggregateStarter extends AggregateStarterLike

    Permalink
  5. trait AggregateStarterLike extends AnyRef

    Permalink
  6. class AggregateStarterSimple extends AggregateStarter

    Permalink
  7. trait AggregateState[E, S <: AggregateStateBase[E, S]] extends AggregateStateBase[E, S]

    Permalink
  8. trait AggregateStateBase[E, S <: AggregateStateBase[E, S]] extends AnyRef

    Permalink
  9. trait AggregateViewAsker extends AnyRef

    Permalink
  10. trait AggregateViewStarter extends AggregateViewAsker

    Permalink
  11. class DispatcherActor extends Actor with ActorLogging

    Permalink
  12. abstract class GeneralAggregateBase[E, S <: AggregateStateBase[E, S]] extends EnhancedPersistentShardingActor[E, AggregateError]

    Permalink

    Dispatcher - When sending something to an ES, use its dispatcher Command - Dispatchable message - When sent to the dispatcher, it will be sent to the correct ES.

    Dispatcher - When sending something to an ES, use its dispatcher Command - Dispatchable message - When sent to the dispatcher, it will be sent to the correct ES.

    Event - Represents a change of state for an ES

    State is immutable. Represents the full state of the entity. based on its state it can accept or reject an event. Has with method transition(event) - if ok, it returns new state. If not, an error is thrown.

    Can be used to try an event (since it is mutable)

    DurableMessage: method of sending a message which with retry-mechanism until confirm() is called.

    GeneralAggregate pseudocode:

    for each received cmd: convert it to event try the event (by calling state.transition() ) if it failed: maybe do something if it works: persist event generate and send DurableMessages change our current state (by calling state.transition() and keeping the result )

    E

    Superclass/trait representing your events

    S

    The type representing your state

  13. abstract class GeneralAggregateDMViaEvent[E, S <: AggregateState[E, S]] extends GeneralAggregateBase[E, S]

    Permalink
  14. abstract class GeneralAggregateDMViaState[E, S <: AggregateStateBase[E, S]] extends GeneralAggregateBase[E, S]

    Permalink
  15. abstract class GeneralAggregateDMViaStateAndEvent[E, S <: AggregateStateBase[E, S]] extends GeneralAggregateBase[E, S]

    Permalink
  16. class GeneralAggregateView[E, S <: AggregateStateBase[E, S]] extends EnhancedPersistentView[E, S]

    Permalink
  17. case class ResultingDMs(list: List[SendAsDM]) extends Product with Serializable

    Permalink
  18. case class ResultingEvent[+E](events: () ⇒ List[E], errorHandler: (String) ⇒ Unit, successHandler: () ⇒ Unit, afterValidationSuccessHandler: () ⇒ Unit) extends Product with Serializable

    Permalink
  19. case class StateTransition[E, S <: AggregateStateBase[E, S]](newState: S, newEvent: Option[E] = None) extends Product with Serializable

    Permalink

Value Members

  1. object AggregateStarter

    Permalink
  2. object AggregateStarterSimple

    Permalink
  3. object ResultingDMs extends Serializable

    Permalink
  4. object ResultingEvent extends Serializable

    Permalink
  5. object StateTransition extends Serializable

    Permalink
  6. package v2

    Permalink

Ungrouped