Completed
How to maintain data consistency between aggregates?
Class Central Classrooms beta
YouTube videos curated by Class Central.
Classroom Contents
Developing Microservices with Aggregates
Automatically move to the next video in the Classroom when playback concludes
- 1 Developing Microservices with Aggregates
- 2 Presentation goal
- 3 About Chris
- 4 Microservice architecture
- 5 Domain model = tangled web of classes
- 6 Reliance on ACID transactions to enforce invariants
- 7 and requires 2PC
- 8 2PC is not an option
- 9 Domain Driven Design - building blocks
- 10 About Aggregates
- 11 Aggregate: rule #1
- 12 Domain model = collection of loosely connected aggregates
- 13 Easily partition into microservices
- 14 Aggregate rule #2
- 15 Transaction scope = service
- 16 How to maintain data consistency between aggregates?
- 17 Using event-driven Sagas instead of 2PC
- 18 Saga-based, eventually consistent order processing
- 19 Complexity of compensating transactions
- 20 How atomically update database and publish an event
- 21 Failure = inconsistent system
- 22 Event sourcing = event-centric persistence
- 23 Persists events NOT current state
- 24 Replay events to recreate state
- 25 The Customer aggregate
- 26 Customer command processing
- 27 Customer applying events
- 28 Request handling in an event sourced application
- 29 Event Store publishes events consumed by other services
- 30 Event store = database + message broker
- 31 Benefits of event sourcing
- 32 Drawbacks of event
- 33 Summary