eventium-core-0.1.0: Core module for eventium
Safe HaskellNone
LanguageHaskell2010

Eventium.ProcessManager

Synopsis

Documentation

data ProcessManager state event command Source #

A ProcessManager manages interaction between event streams. It works by listening to events on an event bus and applying events to its internal Projection (see applyProcessManagerCommandsAndEvents). Then, pending commands and events are plucked off of that Projection and applied to the appropriate CommandHandler or Projections in other streams.

data ProcessManagerCommand event command Source #

This is a command along with the UUID of the target CommandHandler, as well as the CommandHandler type. Note that this uses an existential type to hide the state type parameter on the CommandHandler.

Instances

Instances details
(Show command, Show event) => Show (ProcessManagerCommand event command) Source # 
Instance details

Defined in Eventium.ProcessManager

Methods

showsPrec :: Int -> ProcessManagerCommand event command -> ShowS #

show :: ProcessManagerCommand event command -> String #

showList :: [ProcessManagerCommand event command] -> ShowS #

applyProcessManagerCommandsAndEvents :: Monad m => ProcessManager state event command -> VersionedEventStoreWriter m event -> VersionedEventStoreReader m event -> state -> m () Source #

Plucks the pending commands and events off of the process manager's state and applies them to the appropriate locations in the event store.