https://github.com/sloshy/fs2-es
Event sourcing utilities for FS2
https://github.com/sloshy/fs2-es
cats-effect event-sourcing events fs2 scala state-machine state-management streaming
Last synced: 24 days ago
JSON representation
Event sourcing utilities for FS2
- Host: GitHub
- URL: https://github.com/sloshy/fs2-es
- Owner: sloshy
- License: mit
- Created: 2019-09-28T20:52:50.000Z (over 5 years ago)
- Default Branch: main
- Last Pushed: 2023-07-01T00:29:38.000Z (almost 2 years ago)
- Last Synced: 2023-07-03T13:05:41.768Z (almost 2 years ago)
- Topics: cats-effect, event-sourcing, events, fs2, scala, state-machine, state-management, streaming
- Language: Scala
- Homepage: https://sloshy.github.io/fs2-es/
- Size: 540 KB
- Stars: 79
- Watchers: 5
- Forks: 6
- Open Issues: 39
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# FS2-ES
**This project is not actively maintained as of October 2021, and should be avoided for new projects at this time. If you are looking for event-sourcing needs in the Typelevel ecosystem, please check out [edomata](https://github.com/hnaderi/edomata) instead.**
 [](https://gitter.im/fs2-es/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)
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" % ""
libraryDependencies += "dev.rpeters" %% "fs2-es-testing" % "" //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](https://sloshy.github.io/fs2-es/docs/eventstate/) - Use "EventState" to model event-driven state that is safe, concurrent, and with no boilerplate.
* [Event Sourcing](https://sloshy.github.io/fs2-es/docs/eventstatecache/) - Manage entities using event sourcing patterns with "EventStateCache", a standard repository interface.
* [Test Utilities](https://sloshy.github.io/fs2-es/docs/testing/) - 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
* [Core](https://javadoc.io/doc/dev.rpeters/fs2-es_2.13/latest/dev/rpeters/fs2/es/index.html)
* [Testing](https://javadoc.io/doc/dev.rpeters/fs2-es-testing_2.13/latest/dev/rpeters/fs2/es/testing/index.html)