FactCast is a 'good enough' Event-store based on PostgreSQL.
and also
Factus is an API to write Event-Sourced applications on the JVM using FactCast

Actions Status codecov CodeFactor Maven Central DockerHub License


FactCast is written in Java & Kotlin and serves as a basis for working in a distributed environment with loosely coupled software systems that communicate over events.

It provides two APIs for the JVM:

  1. FactCast client: low-level, un-opinionated GRPC library to publish / subscribe to facts
  2. Factus: high-level, opinionated library working with facts as Objects, as well as abstractions like Aggregates & Projections

and also a Schema-Registry that enables FactCast to validate & transform events on the fly.

If you are new here, you might want to read up on the motivation and design for the project.


Factus also integrates with external Datastores like

but adding support for any other datastore (be it transactional or not) is very easy to implement.


The project is hosted on GitHub and any kind of contribution is very welcome.

If you have questions that are not easily answered by this website, feel free to open a ‘question’ issue on GitHub, or ask a question on gitter.

This project is sponsored by PRISMA European Capacity Platform GmbH