The internals section provides big-picture explanations of the design choices we made and how the different libraries work internally.
This section is most useful for gaining a deep understanding of a particular messaging topic.
MessageHandler consists of several runtimes, which each support a subset of the 9 processing patterns.
These patterns have been purposely selected to:
- Ensure data consistency in an environment without transactions
- Support polyglot persistence
Event Sourcing Runtime
The Event Sourcing Runtime takes care of sourcing components from a stream of events. Its main purpose is to support the Aggregate Root and Projection patterns
Transactional Message Processing Runtime
The Transactional Message Processing Runtime takes care of handling queued messages Atomic, Consistent, Isolated and Durable way. Its main purpose is to support the Task Processing, Delegation, Reaction and Downstream Activity patterns.
Event Stream Processing Runtime
The Event Stream Processing Runtime takes care of handling large streams of messages, with a focus on high speeds and high volumes. Its main purpose is to support the Event Processing and Event Generator patterns.
Handler Runtime Configuration
The Handler Runtime Configuration can be shared by the above three runtimes, depending on the needs to share settings, IOC container, logging and metric collection between the runtimes.