8 years of EventSourcing/CQRS @ bettermarks: The good, the bad and the ugly
summary
Bettermarks recounts eight years running EventSourcing/CQRS for an adaptive maths platform with ~500,000 users per year and ~700,000 weekly “aha” events. Architecture uses projections-on-demand with snapshots in MongoDB, causing snapshot-size limits, cheating via scripted events, and a six‑week outage that motivates a phased migration where the EventStore is migrated from MongoDB to DynamoDB (shadow writes, batch writes, retry/backoff fixes, TCP keepalive tweaks). Operations include segmenting 30 tenant tables, 35‑day PITR, and annual dropped 700M events per year Change‑of‑Schoolyear cleans.
AI-written summary · about
chapters (21)
- 0:00Introduction to speakers
- 1:45Bettermarks platform overview
- 3:53Domain model and focus
- 4:56Initial event sourcing setup
- 8:58Reasons for event sourcing
- 10:04Implementation decisions
- 13:16Operational problems arise
- 17:32Change of school year challenge
- 18:55Flash to modern tech shift
- 20:15Corona pandemic impact
- 21:41Scaling with DynamoDB
- 24:11Migration to DynamoDB
- 27:47DynamoDB migration challenges
- 30:36Reading from DynamoDB
- 33:06Event sourcing bottlenecks
- 35:54Debugging and analysis issues
- 37:39Performance optimizations
- 39:47Data warehouse migration
- 41:56Current status and outlook
- 43:44Key learnings summary
- 45:12Future directions
related talks
48mEvent Sourcing - what could possibly go wrong?
46mMicroservices Data Patterns: CQRS & Event Sourcing
51mImmutable data stores and CORS for safety, flexibility and profit
51mThings I Wish I knew Before I Started with Event Sourcing
51mMicroservices Data Patterns: CQRS & Event Sourcing
52mEvent Sourcing – the what, why & how
41mFROM ACTIVERECORD TO EVENTS
52mEvent Sourcing for the Cloud Developer
