DDD Europe 2024 - Program

What we learned about event sourcing and DDD while building a bank

Main Conference - Talk


Thomas Bøgh Fangel

Thomas Bøgh Fangel
Friday 31 from 12:00 until 13:00

In August 2019 Lunar received its own banking license. About half a year later, in early 2020, we went live on a banking backend built with event sourcing at its core. Since then, the platform has scaled to serve Lunar’s more than 600k customers across the Nordics. This hasn’t just been an easy ride. In this talk, I will share the journey of building the Lunar banking backend with DDD as a guiding principle for both the organization and the software design and event sourcing as a primary tool.

Expect to hear about snapshotting, the challenge of long-lived event streams with half a million events, event evolution, event replay, unbounded state and bad aggregate design due to a poor understanding of the domain. Along the road, DDD became a fundamental part of our software design from the level of team topologies and the design of service boundaries to the level of naming of variables. At the end you should have an understanding of why event sourcing and DDD are the perfect companions and how DDD can be used to guide refactorings both at the tactical and the strategic level.

About Thomas Bøgh Fangel

Thomas Bøgh Fangel is a staff engineer at Lunar - one of the new players in the Nordic banking sector. He is currently tech lead of the team responsible for Lunar's integration into the domestic clearings across all Lunar's markets. Additionally, he spends time on the overall Lunar software architecture in collaboration with his fellow staff engineers. Currently, most of this implementation is done in Go, but before joining Lunar, Thomas has implemented complex distributed systems using FP in Scala and the Akka actor framework.