SETSET
Write a value with an optional TTL, IF NOT PRESENT, or version compare-and-swap.
Documentation / Start here
A practical guide to running Orbita today, followed by the contracts and architectural decisions the implementation is built to satisfy.
00 / Project status
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.
Reads, writes, deletes, scans, conditions, TTLs, and a default keyspace.
Worker registration, server-side Admin calls, and production readiness.
01 / Quickstart
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.
git clone https://github.com/orbita-rocks/orbita.git
cd orbita
cargo run --bin orbita -- devorbita set default greeting hello
orbita get default greetingThe 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 quickstart02 / API primitives
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.
SETWrite a value with an optional TTL, IF NOT PRESENT, or version compare-and-swap.
GETRead a value and its opaque, never-reissued version token.
DELETERemove a key, optionally only when its version still matches.
LISTRead an ordered page of keys and values by prefix, with an opaque cursor.
03 / Guarantees
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.
04 / Architecture
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.
Raft-owned metadata: the partition map, workers, keyspaces, placement, epochs, and failover decisions.
Each partition has one write owner and two full replicas. Any worker can accept a client request and route it.
Writes are acknowledged at 2-of-3. Epoch fencing prevents an old owner from committing after failover.
Segments and manifests live in S3-compatible storage behind a fully memory-resident key index.
Virtual time, network faults, disk faults, restarts, and seeded schedules exercise the same runtime seams.
05 / Deep dives
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.
Scope, guarantees, scale envelope, acceptance criteria, and non-goals.
Decision historyReplica reads, versions, upgrades, peer traffic, storage, and large values.
What comes nextOpen format, real Raft, test evidence, watch, transactions, and security.
Bytes on storageThe independently specified immutable segment and manifest layout.