Building Event-Driven Microservices with Event Sourcing and CQRS
summary
Wix replaces row-state storage with a writable event store + event bus, builds read-optimized views for queries, and runs an invoice service that serves tenants at 120 million users and ~5 billion requests/day. Events become the immutable audit log, are replayable for testing and migrations, and views are rebuilt or kept eventually consistent via three strategies (replay-on-read, synchronous view writes, or version-gap repair). Uses optimistic versioning, a Scala reducer/fold implementation and Accord for payload validation; the system is deployed and actively migrated multiple products onto it.
AI-written summary · about
chapters (12)
- 0:00Intro
- 1:59Accidental Complexity
- 5:11We Lose Data By Design
- 13:23CRUD is Difficult to Scale
- 18:01CQRS is an Optimization
- 24:33Event Sourcing is Not a Silver Bullet Beware of the added complexity
- 28:52Your Business Domain Drives The Consistency Level
- 31:57Your Business Domain Drives The Way You Validate the Data
- 34:58Your Business Domain Drives The Locking Mechanism
- 35:32Lessons Learned
- 35:54Small Steps Event sourcing is not a top-level architecture
- 37:05Code Changes Beware of changing the event definitions in your code
related talks
56mDeveloping Event-driven Microservices w/Event Sourcing and CQRS
43mBattle-tested event-driven patterns for your Microservices archit.
01h 25mBuilding microservices with event sourcing and CQRS
54mLessons learned from working with 2000 event-driven microservices
46mLessons Learned From Working with 2000 Event-Driven Microservices
41mBattle-tested event-driven patterns for your microservices
46mMicroservices Data Patterns: CQRS & Event Sourcing
51mMicroservices Data Patterns: CQRS & Event Sourcing
