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:
- FactCast client: low-level, un-opinionated GRPC library to publish / subscribe to facts
- 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.