Package

no.nextgentel.oss.akkatools

aggregate

Permalink

package aggregate

Visibility
  1. Public
  2. All

Type Members

  1. abstract class AbstractGeneralAggregate[S <: AggregateStateJava] extends GeneralAggregate[Any, AggregateStateJava]

    Permalink

    Inspired by akka.actor.AbstractActor

    Inspired by akka.actor.AbstractActor

    Use CmdToEventBuilder the same way you use ReceiveBuilder

    S

    The type representing your state

  2. trait AggregateCmd extends AnyRef

    Permalink
  3. class AggregateCmdMessageExtractor extends HashCodeMessageExtractor

    Permalink
  4. class AggregateError extends RuntimeException

    Permalink
  5. abstract class AggregateStarter extends AggregateStarterLike

    Permalink
  6. trait AggregateStarterLike extends AnyRef

    Permalink
  7. class AggregateStarterSimple extends AggregateStarter

    Permalink
  8. trait AggregateState[E, T <: AggregateState[E, T]] extends AnyRef

    Permalink
  9. trait AggregateStateJava extends AggregateState[Any, AggregateStateJava]

    Permalink
  10. trait AggregateViewAsker extends AnyRef

    Permalink
  11. trait AggregateViewStarter extends AggregateViewAsker

    Permalink
  12. class CmdToEventBuilder extends AnyRef

    Permalink
  13. class DispatcherActor extends Actor with ActorLogging

    Permalink
  14. abstract class GeneralAggregateBase[E, S <: AggregateState[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

  15. abstract class GeneralAggregateDMViaState[E, S <: AggregateState[E, S]] extends GeneralAggregateBase[E, S]

    Permalink
  16. abstract class GeneralAggregateDMViaStateAndEvent[E, S <: AggregateState[E, S]] extends GeneralAggregateBase[E, S]

    Permalink
  17. abstract class GeneralAggregateJava[S <: AggregateStateJava] extends GeneralAggregate[Any, AggregateStateJava]

    Permalink

    S

    The type representing your state

  18. class GeneralAggregateView[E, S <: AggregateState[E, S]] extends EnhancedPersistentView[E, S]

    Permalink
  19. class GeneralAggregateViewJava extends GeneralAggregateView[Any, AggregateStateJava]

    Permalink
  20. class GenerateResultingDurableMessagesBuilder extends AnyRef

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

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

    Permalink
  23. case class ResultingEventJava(events: List[Any], successHandler: Runnable, afterValidationSuccessHandler: Runnable, errorHandler: Consumer[String]) extends Product with Serializable

    Permalink
  24. abstract class GeneralAggregate[E, S <: AggregateState[E, S]] extends GeneralAggregateBase[E, S]

    Permalink
    Annotations
    @deprecated
    Deprecated

    (Since version 1.0.7) This impl is too complicated with all the different generateDMs*-methods - Instead use GeneralAggregateBAse which has one single generic generateDMs-method

  25. abstract class GeneralAggregateBuilder[E, S <: AggregateState[E, S]] extends AnyRef

    Permalink
    Annotations
    @deprecated
    Deprecated

    (Since version 1.0.3)

  26. class GeneralAggregateBuilderJava extends GeneralAggregateBuilder[Any, AggregateStateJava]

    Permalink
    Annotations
    @deprecated
    Deprecated

    (Since version 1.0.3) Use AggregateStarter and AggregateViewStarter with GeneralAggregateViewJava instead

  27. case class ResultingDurableMessages(list: List[SendAsDurableMessage]) extends Product with Serializable

    Permalink
    Annotations
    @deprecated
    Deprecated

    (Since version 1.0.7) Use ResultingDMs and GeneralAggregateBase instead

Value Members

  1. object AggregateStarter

    Permalink
  2. object AggregateStarterSimple

    Permalink
  3. object ResultingDMs extends Serializable

    Permalink
  4. object ResultingEvent extends Serializable

    Permalink
  5. object ResultingEventJava extends Serializable

    Permalink
  6. package v2

    Permalink

Deprecated Value Members

  1. object ResultingDurableMessages extends Serializable

    Permalink
    Annotations
    @deprecated
    Deprecated

    (Since version 1.0.7) Use ResultingDMs and GeneralAggregateBase instead

Ungrouped