Replicated before acknowledgement
Normal writes never wait for object storage.
Open source · Apache 2.0 · Built for the cloud
Orbita is a strongly consistent store for locks, leases, catalogs, epochs, and control-plane state. Start with one process. Seamlessly grow with your system.
Orbita is under active development and is not production-ready.
See the roadmap ↓Why Orbita
Coordination state starts with a few locks, leases, and ownership records. Then more teams depend on it, the working set grows, and one small cluster becomes several.
The other direction is a broader distributed database with an operating model larger than the problem. Orbita keeps the coordination surface focused while capacity grows underneath it.
Read the thesisWhy Orbita can grow
Orbita separates the fast coordination path from bulk durability. Workers can move, rebuild, and multiply without becoming permanent owners of the durable dataset.
Normal writes never wait for object storage.
Bulk durability is independent from any worker.
No full database copy from a busy peer.
The WAL keeps writes fast. Object storage stays off the acknowledgement path.
Object storage makes workers replaceable. Durable data is not trapped on one machine.
Range partitions create horizontal capacity. Worker count grows independently from the voter group.
The product model
The operating model changes in capacity, not in kind. Start locally, add workers when the system asks for them, then give each workload its own keyspace.
Run a complete development cluster as one process, with one command and a default keyspace.
Add workers as partitions, indexes, and hot data expand. Clients keep the same small KV surface.
Keyspaces isolate credentials, quotas, limits, and workloads inside one coordination backbone.
A focused system
A smaller surface is easier to understand, test, operate, and trust. Orbita keeps the primitives that control-plane state needs.
GET, SET, DELETE, and ordered prefix LIST keep the data model direct.
Compare-and-swap and IF NOT PRESENT build locks, ownership records, and fencing patterns.
Deadlines are part of the record, so expiry has one meaning across retries and failover.
Keyspaces carry their own credentials, quotas, limits, and partition growth.
Correctness is a product surface
Network, disk, clock, and node failures run under a deterministic simulator. A failing seed becomes a reproducible trace and a permanent regression test.
ORBITA_SIM_SEED=<seed> moon run orbita-sim:simOne process. Two commands.
The development cluster is one process, one partition, and a default keyspace on 127.0.0.1:7100.
$ cargo run --bin orbita -- dev
orbita dev · 127.0.0.1:7100
$ orbita set default greeting hello
version 1
$ orbita get default greeting
helloRoadmap
The sequence matters: finish the storage and control-plane model, strengthen the test system, then widen the product surface.
Open partition format, object-backed storage and hydration, Raft control plane, combined nodes, automatic voter management, safe upgrades, and resource visibility.
Broader fault injection, seeded regressions, real-cluster scale tests, published correctness results, backup and restore, an offline reader, and the operator kit.
Watch streams, the transaction ladder, official client support, tested coordination recipes, and migration tooling.
TLS, peer mTLS, prefix-level authorization, certificate rotation, and an administrative audit log.
From the journal
Why the layer that holds your locks and epochs deserves evidence, and why deterministic simulation has to start on day one.
↗Durability asks whether a write survives. Coherence asks whether anyone can still serve the old value. They are not the same vote.
↗Start with one process
Run Orbita locally, inspect the architecture, and follow the work toward a production-ready coordination backbone.