Skip to content

crabzilla/crabzilla

Repository files navigation

Vertx Vertx Vertx CI codecov Jitpack

Objectives

  1. Allows writing your testable CQRS/ES model with minimal dependencies.

  2. Allows consistently handling your commands and save resulting events into Postgres.

  3. Allows consistently and ordered projecting your events to your view models in Postgres.

  4. Allows consistently and ordered publishing your events to Vertx eventbus, so you can integrate with any message broker, database, cache, etc.

Approach

  • Using Vertx non-blocking IO Postgres driver.

  • Using key Postgres features: json, notification and advisory locks.

  • Trying to be idiomatic Kotlin: type safeness: immutability, pattern matching, honouring your constructors.

crabzilla-core

To express your domain model.

  • State transitions occurs after computing results of pure functions (State, Event) → State.

  • Tests in BDD way without any dependency to Vertx: only to crabzilla-core:

    • given command, then assertion

    • given events, when command, then assertion

    • given commands or events in any order, then assertion

WIP

About

Yet another Event Sourcing experiment. A project exploring Vert.x to develop Event Sourcing / CQRS applications.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages