Programming model

Building an event sourcing application using Simple Sourcing involves the following steps:

  1. Define the aggregates the application will use
  2. Implement the aggregate command and event handlers
  3. Create the event sourcing streaming application
  4. Create Simple Sourcing client instances where required

Language choice

Simple Sourcing is written in Java. Simple Sourcing applications can be implemented in and used from any JVM language.


There is currently no dedicated Scala API available. However it is easy to create a Simple Sourcing application in Scala. An example is provided in the experimental Simple Sagas project.

This example includes helper functions for generic derivation of Serdes for Json serialization using Circe.

A dedicated Scala DSL may be added in the future.


As with Scala, it is easy and natural to use Simple Sourcing from a Kotlin application.

API reference documentation

Javadocs are available hereā€¦