Arnaud has been developing software professionally since 1994. Passionate about all aspects of coding, he has worked as: Researcher/PhD Student on test generation, IT Provider, Freelance consultant on software quality, trainer on various software engineering topics, agile coach, software architect, lead developer, CTO in startups...
Pure and lazy functional programming languages seem a perfect fit to implement Domain Driven Design using Event Sourcing as a domain storage principal. Immutable and persistent data structures, call-by-need evaluation, memoization, referential transparency, compositionality and strong typing are some features offered by Haskell that provides building blocks for growing domain-centric and flexible applications.
This session is a detailed walkthrough of one possible implementation of Event Sourcing in Haskell, drawing on the speaker's experience as CTO of Capital Match, a crowdlending startup based in Singapore whose system is built using this technology. We will implement a simple yet useful model, going through all the various stages and layers needed to expose a service, persist state, apply business rules, manage migrations, in Haskell. Along the way, we aim to demonstrate that Haskell, thanks to its pure lazy semantics and rich type system, provides useful tools for the practitioner to develop concise, expressive, composable and safe code.