Axiom
Java 24 · NIO · Maven
A Redis-compatible server on a single-threaded event loop.
Axiom takes Redis's most interesting architectural bet — one thread, zero contention — and rebuilds it in Java: a single-threaded NIO event loop with direct ByteBuffer access, keeping GC pressure low enough that the JVM stays out of the latency story.
It speaks the real protocol. 29+ commands cover strings, lists, sorted sets, geospatial queries via geohash, streams, and pattern-matched pub/sub — with custom QuickList and SkipList structures underneath rather than borrowed collections.
Replication is the deep end: PSYNC with an RDB snapshot on initial sync, async incremental streaming after, WAIT-based sync guarantees, and per-replica lag tracked through REPLCONF GETACK. Benchmarked at ~81K GET and ~68K SET ops/sec with 50 concurrent clients, p99 ≤ 3.1 ms.
Key decisions
- 29+ commands across strings, lists, sorted sets, geospatial, streams, and pattern-matched pub/sub
- Custom QuickList and SkipList data structures backing lists and sorted sets
- PSYNC replication — RDB snapshot on initial sync, async incremental streaming
- Per-replica lag tracking via REPLCONF GETACK, WAIT-based sync guarantees