Event sourcing after page 1: How we built a cloud native bank
summary
Lunar builds a cloud‑native, event‑sourced banking core on Kubernetes using Go and Postgres with a homegrown event library; ~300 services run on the platform and nearly 1M Danish accounts are served, ~100 services using event sourcing. Long streams reach >50,000 events (one stream ~2M), so snapshotting (example: reduce load to ~20ms) and event evolution are essential. Side effects use an outbox pattern, ordering and unbounded state (idempotency maps) remain hard problems despite Prometheus, Grafana and Backstage observability.
AI-written summary · about
chapters (15)
- 0:00Luna’s banking journey
- 2:53Event sourcing for compliance
- 4:18Event sourcing basics
- 7:06Implementing event sourcing
- 9:56Custom event library
- 11:01Long-lived event streams
- 13:52Snapshotting for performance
- 15:41Unbounded account state
- 17:07Single-responsibility streams
- 19:36DDD and event sourcing
- 22:27Event subscriptions
- 25:21Credit transfer workflow
- 26:47Key takeaways
- 28:57Cloud native benefits
- 30:23Event sourcing after four years
related talks
50mHow to model event-sourced systems efficiently
47mThe Rise of Reactive Microservices
44mThe Art and Benefits of Computing Eventfully
47mTackling Cloud Complexity - Recipes From Real World Projects
51mHow do we approach event streaming at Revolut?
30mBuilding a Large-Scale, Streaming-Based Logging and Monitoring Solution
50mThe harsh reality of Event Sourcing - mitigated with Spring and Axon on Tanzu Application Platform
37mReactive Architecture on AWS: from 0 to 1.6M events/minute
