Open substrate · BSL 1.1
stplr.
A self-managing, horizontally-scaling distributed key/value + set-ops store.
Rendezvous-hashed · replicated · zero-touch · durable.
The problem
Durable distributed stores are powerful — and a chore to run.
- Cassandra / Scylla / etcd / FoundationDB: real durability + scale, but JVMs, multi-component clusters, snitches, repair, cluster files, tuning.
- Redis / Memcached: trivial to run, but in-memory — durability and horizontal scale are bolt-ons.
- The empty quadrant: durable + distributed + low operational burden.
What it is
One binary. Composable roles. No babysitting.
shard owns + serves a partition; the horizontal-scale unit, replicated R-ways.
coordinator routes, drives rebalancing + membership, holds the leader lease.
api stateless endpoint; run N behind a load balancer.
# one process, any combination of roles
stplrd --store lmdb --path /var/lib/stplr \
--bind 0.0.0.0:8100 --bin-bind 0.0.0.0:8101
Rust + LMDB. The disk is the database. Starts in ~2s, no config.
Data model
Generic KV + server-side set ops.
POST /write {coll,key,obj} # object store
GET /object?coll=&key=
POST /setAdd {coll,key,member} # posting-list sets
POST /setRemove · GET set members
# evaluated ON the shard, not pulled to the client
Plus the KV semantics users expect:
ttlMs per-key expiry /cas compare-and-set /incr atomic counters
Opaque JSON values — wire-identical across the memory + durable backends.
Self-managing
Zero-touch operations.
- Online rebalance on membership change — no manual reshard, no downtime.
- Graceful drain, auto-heal, crash-resume of interrupted migrations.
- Live membership — add a node, it joins the rendezvous ring and pulls its share.
Rendezvous (HRW) hashing over a fixed bucket ring: deterministic placement, minimal data movement when the cluster changes.
High availability
HA the whole way down.
Data plane
Top-R replication (R≥2), auto-heal, crash-resume, rack/zone-aware placement.
Coordinator
TTL-lease leader election — run replicas, one drives. Fencing token.
Writes
Direct-to-shard client — the coordinator is off the data path.
Ingest
Durable write-ahead queue — crash-safe, at-least-once.
Benchmarked · durable tier
Throughput where durability usually costs it.
204kdurable reads / sec
129kdurable writes / sec
~2sone binary → first query
Per-shard, 4-vCPU node, LMDB-durable. Led the open durable field (Cassandra, Scylla, etcd, TiKV, FoundationDB) on read and write — at the lowest ops burden. Scale out by adding shards, not cores.
Production-ready
The boxes you check before prod.
- ✓ Per-key TTL / expiry
- ✓ Atomic CAS + counters
- ✓ Bearer-token auth
- ✓ Prometheus
/metrics
- ✓ Scheduled backups + verify
- ✓ Replayable change feed
- ✓ Rack/zone-aware replicas
- ✓ Operator (Helm) for OpenShift/K8s
Scope — by design
Two things stplr is not.
Not a consensus coordinator
An HA data plane, not a Raft/Paxos config store. Strong per-shard
(atomic CAS, counters, single-shard txns); the cluster keeps serving through node loss
and partitions instead of stalling for a quorum. Cross-DC is async, last-writer-wins.
Need a strict lock service for a handful of keys? That's etcd — and stplr runs leader
election on top.
Not a vector database
Vectors find what's similar. stplr does the half they can't: exact,
structured correlation — membership, AND/OR/NOT set algebra, deterministic
joins with auditable provenance. The precise complement to similarity search — and what
the Stitch engine is built on. Pair them; don't swap one
for the other.
Open core
stplr is the substrate. Stitch is the engine.
- stplr (BSL 1.1 → Apache 2.0 on a clock): the open, generic data plane — KV, sets, replication, zero-touch ops.
- Stitch (proprietary, US Patent 11,151,112): schema-aware multi-table correlation, AND/OR/NOT set logic at scale, metering + SSO/RBAC/audit — runs on the same cluster.
Clean line: generic set-ops are FOSS; correlation is enterprise. The patent never enters the open tree.
Roadmap
What's next.
streaming + point-in-time restore log retention & compaction in-process TLS aggregate multi-load-gen benchmark
Recently shipped: per-key TTL · atomic CAS + counters · bearer auth · direct-to-shard writes · coordinator leader election · durable ingest queue · rack/zone-aware replicas · Prometheus /metrics · scheduled backups.
Meet the mascot
Vypr — the staple-fanged viper.
Coiled, fast, and unreasonably good at holding your data together.
stplr.
Durable. Distributed. Zero-touch.
stplr.org · github.com/vondrakk/stplr · Stitch at joinyourdata.com