3. @crichardson
About Eventuate
Distributed data management platform for microservices
Programming model based on
Transactional, asynchronous messaging
Sagas
CQRS
Event Sourcing
Java/JVM (Spring Boot/Micronaut), NodeJS, .NET
http://eventuate.io/
4. @crichardson
Microservice
Architecture
Database per
Service
Saga CQRS
Choreography-
based
Saga
Orchestration-
based saga
Domain Event
Async
Request/
Response
Event SourcingTransactional
Outbox
Motivating
Pattern
Solution
Pattern
Solution A Solution B
General Speciļ¬c
Eventuate Local
Eventuate through microservices patterns
Key distributed data management patterns
Key enabling patterns
Idempotent
Consumer
Needed for loose design-time and runtime coupling
Implements queries that span servicesImplements transactions that
span services
Eventuate Tram
6. @crichardson
About the Eventuate CDC
service
Publishes messages inserted into the message/events table to
the message broker:
Tails MySQL/Postgres transaction log
Uses polling for other databases
Spring Boot application/available as a Docker container
Scaling - CDC per service database
17. @crichardson
Events: publishing
Events = Messages++
aggregateType = channel
aggregateId is the partition key = ensures ordering of events
from a given aggregate
19. @crichardson
About commands
Builds on transaction messaging
Asynchronous Request/response
Request message has headers:
commandType - used to select command handler
replyTo - channel to send reply to
25. @crichardson
About Eventuate Local
Event Sourcing framework for Java/Spring Boot/Micronaut
Event store built on open-source technologies
Database: āJDBCā databases: MySQL, Postgres, SQL
Server, ā¦
Message broker: Apache Kafka