fs2-es icon indicating copy to clipboard operation
fs2-es copied to clipboard

Event sourcing utilities for FS2

FS2-ES

This project is currently undergoing major changes, and should be avoided for new projects at this time. This message will be gone once the library has been updated.

Sonatype Nexus (Releases) Gitter

This is a small library to encode event-sourcing patterns using FS2, a streaming library in Scala. The library is polymorphic using Cats Effect, so you can use it with any effect type you want that implements cats.effect.Concurrent.

To use, add the library to your build.sbt like so:

libraryDependencies += "dev.rpeters" %% "fs2-es" % "<latest-version>"
libraryDependencies += "dev.rpeters" %% "fs2-es-testing" % "<latest-version>" //Test module

Currently Scala 2.12 and 2.13 are both supported. Project is built for Scala JVM and ScalaJS 1.4+.

Features

This library has three core focuses:

  • State Management - Use "EventState" to model event-driven state that is safe, concurrent, and with no boilerplate.
  • Event Sourcing - Manage entities using event sourcing patterns with "EventStateCache", a standard repository interface.
  • Test Utilities - Utilize time-travel debugging features and other goodies to analyze your state as it changes.

Click any of the links above to go to the relevant parts of the documentation on our microsite.

API Docs