Skip to content

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#

Elixir

  • Fact (active dev, Elixir library that provides a file system based event store database)

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/eventstore DCB-Compliant Eventstore in Java/Postgres (Open Source - LGPL)

JavaScript/TypeScript

  • @dcb-es/event-store (work in progress)
  • @sbortz/boundless A DCB-inspired Event Store for 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

  • Event Sourcing in Python (Production/Stable)

Ruby

  • ortegacmanuel/kroniko (work in progress)

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