Pragmatic Event Sourcing with Pure Functions

For quite a while, I've been thinking about how a typical event-sourced application could be made simpler, even in mainstream OO languages such as Java or Kotlin, if the domain model was implemented with pure functions. Not only would the domain model be easier to reason about, but also composable and easy to test without special frameworks. This talk will show an example of an event-sourced domain model written in a mainstream language (Kotlin) without any infrastructure dependencies whatsoever. We'll then continue by looking at Occurrent, an open-source event sourcing library for the JVM, to store the events returned from your domain model. We'll also talk about CloudEvents and why you might consider using them for event sourcing purposes.

Johan Haleby is a developer, speaker, and blogger with a profound interest in software engineering, distributed systems, and architecture. Johan strives to write simple and reliable systems that survive production hazards. He has founded and contributed to numerous open-source projects such as PowerMock, REST Assured, Awaitility, and Occurrent and has spoken at several international conferences and user groups.

picture of Johan Haleby

Johan Haleby

Developer and architect at Parkster