What is Foreman? A library that helps you build an event driven application by handling all the complexity of decoding, routing, dispatching and executing commands or subscribing for events. By having Publish/Subscribe and MessageBus patterns you could build different components on top for various architecture approaches like orchestrated sagas or workflows.
- configurable pool of workers for concurrent processing, high throughput
- graceful shutdown
- dynamic encoding/decoding of data structs
- message dispatcher
- transport interface: AMQP implementation
- workflow as code
- compensate & recover triggers
- saga store: mysql/pg
- history of events
- embed sagas as subtasks of parent saga
- HTTP API dashboard
- Apache Kafka transport
- protobuf message encoder
The MIT License (MIT). Please see LICENSE for more information.