Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Roda-Ledger

Roda-Ledger is a high-performance, crash-safe financial ledger engine. It handles the hard parts of financial infrastructure — strict transaction ordering, atomicity, durability, and crash recovery — so you can focus on your business logic.

It is built for engineers who need a ledger they can trust. Not a general-purpose database stretched to fit financial use cases. Not a message queue masquerading as a transaction log. A purpose-built ledger engine, designed from the ground up for correctness and throughput.

It is also designed to get out of your way. Common operations — deposits, withdrawals, transfers — work out of the box. Custom multi-account logic is expressed through registered WASM functions without touching the engine. How much durability you need is your call, per submission: fire and forget for maximum throughput, or wait for disk confirmation when it matters. Run it as a Docker service in minutes, or embed it as a library. The ledger adapts to your use case, not the other way around.

5.7 million transactions per second. Sub-microsecond latency. WAL-backed durability. Zero torn writes.


Quick Start

Get a ledger running in under a minute.

1. Start the server

docker run -p 50051:50051 -v $(pwd)/data:/app/data tislib/roda-ledger:latest

That’s it. The ledger is running, persisting data to ./data, and listening for gRPC connections on port 50051.

2. Submit a deposit

grpcurl -plaintext -d '{"deposit": {"account": 1, "amount": "1000", "user_ref": "123"}}' \
  localhost:50051 roda.ledger.v1.Ledger/SubmitOperation

3. Check the balance

grpcurl -plaintext -d '{"account_id": 1}' \
  localhost:50051 roda.ledger.v1.Ledger/GetBalance

You should see a balance of 1000 for account 1.

Stop the container and start it again — the balance is still there. That is the durability guarantee in action.


Where to Go Next

Roda-Ledger’s documentation is organized into four levels. Start at the top and go as deep as your use case requires.

LevelDocumentWhat it covers
1ConceptsMental model, guarantees, invariants. Read this first.
2APIOperations, wait levels, gRPC reference.
3ArchitecturePipeline design, stage internals, recovery.
4WASM RuntimeProgrammable functions: ABI, registration, recovery.

If you want to understand what roda-ledger guarantees and why, start with Concepts.

If you want to integrate it into your system, start with API.