Last updated: 2026-10-27. Figures are generated by scripts/project_facts.py; maturity labels are in Maturity.


Project Summary

Orbit-RS is a distributed database that speaks several wire protocols over one durable, replicated store. Its goal is full compatibility with PostgreSQL 18, measured against the PostgreSQL 18 conformance corpus; each other protocol layer targets the latest version of the system it imitates (see the protocol table). Compatibility, maturity and performance are stated only as measured: a conformance pass rate with its date, a maturity label with its evidence, and benchmark results with their method. (ADR 0017)

Status

Component Maturity Measured compatibility
PostgreSQL wire and SQL engine Preview 789 of 816 records (96.7%), 2026-10-27, PostgreSQL 18 corpus. Not yet covered: extended protocol, COPY, ORM traffic, pg_dump, psql \d*, concurrency
MySQL, CQL, AQL, MongoDB, Redis RESP, Cypher/Bolt Experimental MySQL 20.0%, CQL 30.3%, AQL 36.4%, MongoDB 44.0%, Redis 37.1%, Cypher/Bolt 7.8% of their first corpora, 2026-10-25 (see the protocol table); each corpus is small and the figures describe only what it covers
OrbitQL, HTTP REST, gRPC Experimental Not yet measured: no external reference server, so each needs a written specification and a suite derived from it (ADR 0006)
Storage (RocksDB, tiers), actor system, Kubernetes operator Experimental not applicable

What exists for PostgreSQL: a durable RocksDB SQL engine replicated by Raft (ADR 0004), schemas (ADR 0003, 0012), and roles, ownership and privileges with SCRAM login (ADR 0013). Known gaps: pg_dump cannot read it, privileges on functions, types and columns, row-level security, and CONNECTION LIMIT.


Project Statistics

Counted by scripts/project_facts.py at commit 222ac1c2 on 2026-10-25:

Workspace Structure

orbit-rs/
├── orbit/server/          # Main server binary (orbit-server)
├── orbit/client/          # Client library (OrbitClient)
├── orbit/shared/          # Shared types, traits, clustering
├── orbit/engine/          # Storage engine (OrbitQL, adapters)
├── orbit/compute/         # Hardware acceleration (SIMD, GPU)
├── orbit/ml/              # Machine learning inference
├── orbit/proto/           # Protocol Buffer definitions
├── orbit/cli/             # Interactive CLI client
├── orbit/operator/        # Kubernetes operator
├── orbit/application/     # Application configuration
├── orbit/util/            # Core utilities
├── orbit/client-spring/   # Spring framework integration
├── orbit/server-etcd/     # etcd integration
└── orbit/server-prometheus/ # Prometheus metrics

Architecture Overview

Core Innovation: In-Process Communication

Recent refactoring eliminated gRPC overhead for local connections:

┌─────────────────────────────────────────────────────────┐
│                   OrbitServer                           │
│  ┌──────────────────────────────────────────────────┐   │
│  │         Protocol Handlers                        │   │
│  │  ┌──────┐  ┌────-──-┐  ┌──────┐  ┌──────┐        │   │
│  │  │Redis │  │Postgres│  │MySQL │  │ CQL  │        │   │
│  │  │:6379 │  │:5432   │  │:3306 │  │:9042 │        │   │
│  │  └───┬──┘  └───┬─--─┘  └───┬──┘  └───┬──┘        │   │
│  └──────┼─────────┼─────────--┼─────────┼───────────┘   │
│         │         │           │         │               │
│         └─────────┴─────--────┴─────────┘               │
│                     │                                   │
│         ┌───────────▼───────────┐                       │
│         │  OrbitClient (Local)  │                       │
│         │  In-Process Channels  │                       │
│         └───────────┬───────────┘                       │
│                     │                                   │
│         ┌───────────▼───────────┐                       │
│         │  ServerConnectionSvc  │                       │
│         │  Message Processing   │                       │
│         └───────────┬───────────┘                       │
│                     │                                   │
│         ┌───────────▼───────────┐                       │
│         │    Actor Registry     │                       │
│         │   Virtual Actors      │                       │
│         └───────────┬───────────┘                       │
│                     │                                   │
│         ┌───────────▼───────────┐                       │
│         │   RocksDB Storage     │                       │
│         │  Persistent LSM-Tree  │                       │
│         └───────────────────────┘                       │
└─────────────────────────────────────────────────────────┘

Protocol layers and targets

One table, kept in ADR 0006. Each layer is a separate compatibility layer with its own conformance corpus (ADR 0005).

Protocol Port Target Maturity Compatibility
PostgreSQL 5432 PostgreSQL 18 Preview 96.7% (789 of 816)
MySQL 3306 MySQL LTS 9.7 Experimental 20.0% (60 of 300), MySQL 9.7.4
CQL 9042 Cassandra 5.0 Experimental 30.3% (63 of 208), Cassandra 5.0.9
AQL 8529 ArangoDB 3.12 Experimental 36.4% (94 of 258), ArangoDB 3.12.12; off in the default configuration
MongoDB 27017 MongoDB 8.3 Experimental 44.0% (59 of 134), MongoDB 8.3.13
OrbitQL   specification 1.0 Experimental not yet measured
Redis RESP 6379 Redis 8 Experimental 37.1% (247 of 666), Redis 8.10.2
Cypher/Bolt 7687 Neo4j 2026.10 (Bolt 5.x; orbit-rs negotiates Bolt 4.4) Experimental 7.8% (9 of 115), Neo4j 2026.10.1
HTTP REST 8080 Orbit’s specification Experimental not yet measured
gRPC 50051 Orbit’s service definitions Experimental not yet measured

The earlier “Complete” labels counted implemented commands, not measured compatibility; they are withdrawn (ADR 0002).


Performance

Not yet benchmarked. Earlier figures (message throughput, memory, binary size, cold start, P99 latency and comparisons with JVM systems) were removed because no benchmark backed them (ADR 0016). Unreleased measurements on debug builds exist but are not quotable.

Safety


Testing


Storage

RocksDB is the default durable store for the SQL engine. Other backends (in-memory, LSM tree, COW B+tree, TiKV, memory-mapped, SQLite) and the hot/warm/cold tier design are Experimental; see Maturity.


Decisions and status

All architecture decisions are in docs/adr/. Proposed records (0015 to 0017) are drafts until the owner accepts them.