In Bench Accounting we heavily use various events as first class citizens: notifications, in-app TODO lists (and messaging solution in future) rely on the eventing framework we built. Recently we’ve migrated our old legacy eventing system to the new framework with a focus on microservices architecture. We’ve chosen event sourcing approach as well as tools like Akka, Camel, ActiveMQ, Slick and Postgres (JSONB).
In this presentation I would like to share high-level overview of the system, implementation details and challenges we’ve faced.
9. Context - Legacy system
Multiple issues:
• Designed for a couple of use-cases, schema is not extendable
• Wasn’t built for microservices
• Tight coupling
• New requirements: messaging (web & mobile)
13. Events
Event Sourcing ensures that all changes to application state are
stored as a sequence of events. Not just can we query these
events, we can also use the event log to reconstruct past states,
and as a foundation to automatically adjust the state to cope with
retroactive changes.
Martin Fowler