Documentation / Start here

Understand the system before you trust it.

A practical guide to running Orbita today, followed by the contracts and architectural decisions the implementation is built to satisfy.

00 / Project status

Useful now. Not production-ready.

Orbita is being built in the open. The single-node path works end to end today. Multi-node registration and the server-side Admin service remain unfinished, and neither the wire nor storage format should be treated as stable yet.

Works nowOne node, complete KV path

Reads, writes, deletes, scans, conditions, TTLs, and a default keyspace.

Still openReal cluster formation

Worker registration, server-side Admin calls, and production readiness.

01 / Quickstart

Run a complete one-node cluster.

You need Rust and the repository. The development command starts one process as both leader and worker on 127.0.0.1:7100, with state under .orbita/dev.

Terminal 01 — start the node
git clone https://github.com/orbita-rocks/orbita.git
cd orbita
cargo run --bin orbita -- dev
Terminal 02 — write and read
orbita set default greeting hello
orbita get default greeting

The Docker Compose and Kubernetes paths already describe the intended topology, but they are evaluation scaffolding until worker registration lands. The repository quickstart keeps the exact list of working and unfinished behavior current.

Full repository quickstart

02 / API primitives

A deliberately small gRPC surface.

Clients can remain dumb: connect to any worker and let the cluster route the request. Every non-transactional operation is available through generated gRPC stubs.

SET

SET

Write a value with an optional TTL, IF NOT PRESENT, or version compare-and-swap.

GET

GET

Read a value and its opaque, never-reissued version token.

DELETE

DELETE

Remove a key, optionally only when its version still matches.

LIST

LIST

Read an ordered page of keys and values by prefix, with an opaque cursor.

03 / Guarantees

The contract, without the marketing blur.

Versions are opaque partition Lamports. They increase and are never reissued for a key, avoiding ABA when a deleted key is later recreated. TTLs are absolute deadlines, so splits and replication cannot skew expiration.

  • All reads are linearizable.
  • Writes acknowledge after 2-of-3 WAL durability.
  • Expired keys are never visible after their deadline.
  • Conditional writes evaluate against pending writes.
  • One LIST page is a consistent partition snapshot.
  • Keyspaces isolate credentials, quotas, and configuration.

04 / Architecture

Control metadata. Distribute the data path.

The leader group never sits in front of ordinary reads or writes. It owns the map and the epochs; workers own partition traffic. That distinction is how Orbita intends to grow past a single Raft group.

  1. 01Leader group

    Raft-owned metadata: the partition map, workers, keyspaces, placement, epochs, and failover decisions.

  2. 02Workers

    Each partition has one write owner and two full replicas. Any worker can accept a client request and route it.

  3. 03Replicated WAL

    Writes are acknowledged at 2-of-3. Epoch fencing prevents an old owner from committing after failover.

  4. 04Immutable objects

    Segments and manifests live in S3-compatible storage behind a fully memory-resident key index.

  5. 05Deterministic simulator

    Virtual time, network faults, disk faults, restarts, and seeded schedules exercise the same runtime seams.

05 / Deep dives

Read the arguments, not only the answers.

Orbita’s accepted architecture decisions are immutable. When a decision changes, a new record supersedes it so the reasoning—and the wrong turns—remain inspectable.