Class ChangeEventHandler<Command,​State,​ChangeEvent>

    • Constructor Detail

      • ChangeEventHandler

        public ChangeEventHandler()
    • Method Detail

      • apply

        public static <Command,​State,​ChangeEvent> ChangeEventHandler<Command,​State,​ChangeEvent> apply​(scala.Function3<State,​State,​Command,​ChangeEvent> updateHandler,
                                                                                                                              scala.Function2<State,​Command,​ChangeEvent> deleteHandler)
        Define these handlers in the DurableStateBehavior.withChangeEventHandler(akka.persistence.typed.state.scaladsl.ChangeEventHandler<Command, State, ChangeEvent>) to store additional change event when the state is updated. The event can be used in Projections.

        The updateHandler and deleteHandler are invoked after the ordinary command handler. Be aware of that if the state is mutable and modified by the command handler the previous state parameter of the updateHandler will also include the modification, since it's the same instance. If that is a problem you need to use immutable state and create a new state instance when modifying it in the command handler.

        Parameters:
        updateHandler - Function that given the previous and new state creates the change event to be stored when the DurableState is updated.
        deleteHandler - Function that given the previous state creates the change event to be stored when the DurableState is deleted.