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 eventual consistency in an environment without transactions
- Support polyglot persistence
- Distribute a system across many partitions and geographic regions
- Automatically resolve conflicts during replication
- Stay secure and compliant
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
Atomic Message Processing Runtime
The Atomic Message Processing Runtime takes care of handling queued messages in an Atomic 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.