Building event-driven microservices with Scala and Functional Domain Models
summary
Argues that persisting immutable domain events instead of state solves cross-database consistency in microservices by making save-and-publish a single atomic action; demos use Scala functional aggregates, an event store, snapshotting, and a small DSL that hides boilerplate. Shows concrete integrations: MySQL for primary writes, ElasticSearch/CloudSearch for search, MongoDB and DynamoDB for materialized views, and event handlers that reconstruct aggregates for money transfers and account debits. Reports the approach gives an audit log, temporal queries, and works well while requiring CQRS and handling replication lag.
AI-written summary · about
chapters (19)
- 0:00Introduction
- 0:44About me
- 2:16Agenda
- 4:32Problems with monolithic applications
- 5:42Large monolithic applications
- 7:25Relational databases
- 9:59Distributed data management
- 12:55Events
- 15:04Event sourcing
- 16:59Event processing
- 19:22Functional code
- 22:43Benefits of event sourcing
- 25:38Challenges with event sourcing
- 27:30Strategic vs Tactical Domain
- 28:12Bounded Contexts
- 29:55Migration
- 32:39Individual Services
- 35:24CQRS
- 37:54Micra services
related talks
59mImplementing Event-Driven Microservices architecture in Functional language
50mDeveloping Microservices with Aggregates
58mImplementing Event-driven Microservices
51mImplementing Microservices with Scale and Akka
47mEvent-Driven Microservices = Microservices Done Right
56mDeveloping Event-driven Microservices w/Event Sourcing and CQRS
51mPatterns & Practices of Implementing Event-driven MicroSvc...
59mImplementing Microservices with Scala and Akka
