Skip to content

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

License

Notifications You must be signed in to change notification settings

crabzilla/crabzilla

Repository files navigation

Vertx Vertx Vertx CI codecov Jitpack

2025 update: it’s now deprecated

I decided to start another experiment: https://github.com/rodolfodpk/crablet. Anyway, I have learned a lot when developing it.

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