Goal for version 1.0.0
To help writing CQRS and Event Sourcing applications with Vert.x
Its still in very early development stage. APIs can change. So far Crabzilla has only an Aggregate example. Inspired by Eventstorming, the goal is to develop examples and implementations for an ExternalSystem, a Listener and a ProcessManager / Saga. Do not use release 0.0.5, master branch is very different from that.
- Java 8
- Maven (tested with 3.5.0+)
- Docker compose (tested with 1.18.0)
- Kotlin plugin for your IDE
- Clone it:
git clone https://github.com/crabzilla/crabzilla cd crabzilla
- Start docker-compose running a Postgres database (port 5432 will be used):
- Open another terminal and build it, running both unit and integration tests:
mvn clean install
- Crabzilla tries to provide a chassis for wiring and running your domain by using verticles and other components.
- If your functions are pure, all side effects will occurs within UnitOfWorkJournal and EventsProjector components.
- So far events from all entities are written as an UnitOfWork in Json format into a single partitioned append only table.