Chronicle in your language
Chronicle in your language
One event-sourcing database, idiomatic clients
Chronicle is an event-sourcing database and processing runtime with a language-agnostic gRPC/protobuf boundary. That means the event store is not tied to one runtime: the first-class .NET SDK and the TypeScript, Kotlin/Java, and Elixir clients all work against the same store, the same events, and the same projections — and a Python client is coming soon. Everything is open source and MIT licensed. Client SDK docs →
Event sourcing for .NET
Section titled “Event sourcing for .NET”The .NET SDK is the first-class Chronicle client: typed access to event stores, event logs, read models, projections, reducers, reactors, constraints, migrations, namespaces, and hosting integration — including a one-line .NET Aspire resource.
dotnet add package Cratis.Chronicle- Event sourcing in .NET — the dedicated landing page
- .NET client docs · Get started
Cratis.Chronicleon NuGet- Chronicle on GitHub
Event sourcing for TypeScript and Node.js
Section titled “Event sourcing for TypeScript and Node.js”@cratis/chronicle is the idiomatic TypeScript client for Chronicle, with support for transactions, jobs, webhooks, compliance/PII, and OpenTelemetry. It builds on the @cratis/chronicle.contracts gRPC contracts package.
npm install @cratis/chronicle- Event sourcing in TypeScript and Node.js — the dedicated landing page
- TypeScript client docs
@cratis/chronicleon npm- Chronicle.TypeScript on GitHub
Event sourcing for Kotlin and Java
Section titled “Event sourcing for Kotlin and Java”io.cratis:chronicle is the idiomatic JVM client for Chronicle, usable from Kotlin and Java alike. It ships with a Spring Boot starter and a testing library.
dependencies { implementation("io.cratis:chronicle:<version>") // Or, in a Spring Boot application: implementation("io.cratis:chronicle-spring-boot-starter:<version>")}- Event sourcing in Kotlin and Java — the dedicated landing page
- Kotlin/Java client docs
io.cratis:chronicleon Maven Central- Chronicle.Kotlin on GitHub
Event sourcing for Elixir
Section titled “Event sourcing for Elixir”cratis_chronicle is the idiomatic Elixir client for Chronicle, with transactions, optimistic concurrency, webhooks, and resilient reconnection.
defp deps do [ {:cratis_chronicle, "~> 0.0"} ]end- Event sourcing in Elixir — the dedicated landing page
- Elixir client docs
cratis_chronicleon Hex- Chronicle.Elixir on GitHub
Event sourcing for Python — coming soon
Section titled “Event sourcing for Python — coming soon”A Python client for Chronicle is in development. It is pre-release and not yet published to PyPI, so there is nothing to install yet — follow the repository for progress.
- Event sourcing in Python — the coming-soon landing page
- Chronicle.Python on GitHub
Any language, one contract
Section titled “Any language, one contract”Every client speaks the same gRPC/protobuf contracts, so any language with a gRPC implementation can talk to Chronicle. If your runtime is not listed above, you can implement the contracts directly.