Arnaud Bailly

Arnaud Bailly

Event Sourcing, Functionally

@abailly · France


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...


Event Sourcing, Functionally

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.

Mel Conway

Inventor, Educator, Author of “Conway's Law”

Eric Evans

Author of “Domain-Driven Design”

Rebecca Wirfs-Brock

Responsibility-Driven Design

Udi Dahan

Founder of NServiceBus

Prof. David West

Author of “Object Thinking”

Jimmy Nilsson

Author of “Applying DDD & Patterns”

Weronika Łabaj


Debasish Ghosh

Functional and Algebraic Domain Modeling

Nick Tune

Co-author of “Patterns, Principles and Practices of DDD”

Greg Young

Creator of CQRS

Alberto Brandolini

Inventor of “EventStorming”

Felienne Hermans

Author of "Grokking Computational Logic"

Andra Sonea

Solutions Architect, Financial Services

Ken Power

Complexity Navigator

Jérémie Chassaing

Software Gardener

Scott Wlaschin

Creator of

Avraham Poupko

Technical leader

Edwin van Wijk

Software Architect

Romeu Moura

Reasoned Schemer

Marijn Huizendveld

Nerd in a suit

Stijn Volders


Robert Smallshire

Modeller of domains, systems and processes

Mathias Verraes

Student of Systems

Michel Grootjans


Yves Lorphelin

Loves Chaos & Failures

Arnaud Bailly

Event Sourcing, Functionally

Paul Rayner

Leading DDD and BDD practitioner

Nicole Rauch

Software Developer and Development Coach

Thomas Ploch

Infinite State Machine

Cyrille Martraire

Deliberate Designer

Thomas Coopman


Yves Reynhout

The Journeylist

Oana Juncu

Agile Business DJ

Allard Buijze

Pragmatic modeller, creator of AxonFramework

Vaughn Vernon

Author, consultant, trainer


Contact us at for sponsor opportunities.