Libraries and tools
DCB is merely a set of ideas and concepts. But there are already a couple of libraries and libraries that prove those in practice:
DCB Compliant Event Stores
in alphabetical order:
Axon Server
Commercial product with DCB support via gRPC/HTTP API by AxonIQ
EventSourcing Database
Commercial product with DCB support via HTTP API by the native web
Tephra
Open Source Event Store written in Rust with DCB support via a custom Protobuf-over-TCP protocol by Ari Seyhun
UmaDB
Open Source Event Store specifically written to support DCB via gRPC API by John Bywater
SDKs, Frameworks, Clients and Tools
C#
Opossum(file system based Event Store that implements the DCB specification,Opossum Nuget Package)Sekiban.Dcb(active dev, PostgreSQL support,Sekiban.Dcb Nuget Package, using Orleans Actor Model)
Elixir
Gleam
factos(DCB-Compliant monorepo of libraries. Factos being the eventstore agnostic, and factos_pog, factos_cf, and factos_sqlight being the eventstores for postgres, clouflare workers, and sqlite respectively. The monorepo also contains an examples folder with the dcb webpage examples translated to gleam + factos)
Go
fairway(DCB-Compliant EventSourcing framework built on top of FoundationDB, demo application available)go-crablet
Java
- Axon Framework Event Sourcing Framework with support for DCB since version 5
- Occurrent Event Sourcing library for the JVM based on CloudEvents, composed from small framework-agnostic modules with optional Spring Boot starters, where DCB and stream-based event sourcing share the same Event Store and the domain model does not have to depend on Occurrent
@sliceworkz/eventstoreDCB-Compliant Eventstore in Java/Postgres (Open Source - LGPL)
JavaScript/TypeScript
Kotlin
FactStore(work in progress)- Occurrent Kotlin DSLs for DCB deciders and criteria on the library listed under Java, with the dcb.events example patterns implemented in Kotlin
PHP
wwwision/dcb-eventstore(work in progress)gember/event-sourcing(work in progress)backslashphp/backslash(fully documented, demo application available)
Python
Ruby
Rust
- Disintegrate
disintegrate-es/disintegrate(slightly different approach, inspired by the original ideas of DCB) - Happenstance
Wet-Ink-Corporation/happenstance(An opinionated, storage-agnostic event sourcing library for Rust, built on the Dynamic Consistency Boundary specification: a contract for storage, and a published conformance suite that decides who meets it.) skilj(Open Source, Postgres-backed library for event-sourced DDD applications with a GraphQL and REST surface, crates.io)
Add your own
If you are working on a library related to DCB or on a compatible (see specification) Event Store, feel free to open a Pull request in the Github Repository of this website to add it to the list above