State Machine Database
with WAL Durability

Define states, transitions, and guards with enterprise-grade durability. Built-in observability, TLS support, and Kubernetes-ready deployment.

Built with Rust
BSL 1.1 Licensed
terminal
$ rstmdb-cli put-machine --name order --version 1 @order.json
Machine 'order' v1 registered (checksum: 8f3a2b1c)

$ rstmdb-cli create-instance --machine order --version 1 --id ord-001
Instance 'ord-001' created in state 'pending'

$ rstmdb-cli apply-event --instance ord-001 --event CONFIRM
Transition: pending -> confirmed (wal: 1042)

$ rstmdb-cli info
rstmdb v0.1.0 | Machines: 1 | Instances: 1
WAL: 1042 entries | Uptime: 2h 15m

Everything you need for stateful workflows

rstmdb combines the power of state machines with the reliability of a database, giving you the tools to build robust, observable systems.

State Machine Engine

Define complex workflows with states, transitions, and guards. Full support for hierarchical state machines.

WAL Durability

Write-ahead logging with configurable fsync intervals ensures your data survives crashes and power failures.

Prometheus Metrics

Built-in observability with Prometheus-compatible metrics. Monitor transitions, latencies, and system health.

TLS/mTLS Support

Secure by default with TLS encryption. Mutual TLS for service-to-service authentication in zero-trust environments.

Helm Chart

Kubernetes-ready deployment with official Helm chart. Configurable replicas, persistence, and monitoring.

CLI Tool

Full-featured command line interface for managing machines, states, and transitions. Scriptable and CI-friendly.

Simple to use,
powerful to scale

Define your state machines in JSON, manage them via CLI, or run them in containers.

{
  "states": ["pending", "confirmed", "shipped", "delivered", "cancelled"],
  "initial": "pending",
  "transitions": [
    { "from": "pending", "event": "CONFIRM", "to": "confirmed" },
    { "from": "pending", "event": "CANCEL", "to": "cancelled" },
    { "from": "confirmed", "event": "SHIP", "to": "shipped" },
    { "from": "shipped", "event": "DELIVER", "to": "delivered" }
  ],
  "meta": {
    "description": "Order fulfillment workflow",
    "version": "1.0.0"
  }
}

Official Client Libraries

Integrate rstmdb into your applications with our official SDKs for popular languages.

Rs

Rust

rstmdb-client

Install

cargo add rstmdb-client
Py

Python

rstmdb

Install

pip install rstmdb
Go

Go

rstmdb-go

Install

go get github.com/rstmdb/rstmdb-go
JS

JavaScript / Node.js

@rstmdb/client

Install

npm install @rstmdb/client
C#

C# / .NET

Rstmdb.Client

Install

dotnet add package Rstmdb.Client
Ja

Java

com.rstmdb:rstmdb-client

Install

// Gradle Kotlin DSL
implementation("com.rstmdb:rstmdb-client:0.1.0")

// Maven
// <dependency>
//   <groupId>com.rstmdb</groupId>
//   <artifactId>rstmdb-client</artifactId>
//   <version>0.1.0</version>
// </dependency>

Get started in seconds

Choose your preferred installation method and start building stateful workflows.

Docker

Run with a single command

docker run -p 7401:7401 rstmdb/rstmdb

Helm

Deploy to Kubernetes

helm install rstmdb rstmdb/rstmdb

Cargo

Install from source

cargo install rstmdb

Ready to use rstmdb commercially?

Get in touch with our team to discuss licensing, enterprise features, and how rstmdb can power your production workloads.

Enterprise Support

Dedicated support and SLAs for your production workloads.

Custom Integrations

Work with our team to build integrations for your stack.

Volume Licensing

Flexible licensing options for any number of instances.

Open Source Usage: rstmdb is available under the Business Source License 1.1. Non-commercial and evaluation use is free. Contact us for commercial licensing.

Contact Sales

By submitting this form, you agree to our privacy policy.