Show HN: UnisonDB – Log-native KV database that replicates like a message bus

3 days ago 2

A reactive, multi-modal database built on B+Trees and WAL-based streaming replication, designed for local-first, edge-scale applications.

UnisonDB

What is UnisonDB? UnisonDB is a log-native database that replicates like a message bus. It combines database semantics with streaming mechanics to provide a powerful foundation for reactive architectures and local-first systems.

Key Features#

  • Multi-Modal Storage: Key-Value, Wide-Column, and Large Objects (LOB)
  • Streaming Replication: WAL-based replication with sub-second fan-out to 100+ edge replicas
  • Real-Time Notifications: ZeroMQ-based change notifications with sub-millisecond latency
  • Durable & Fast: B+Tree storage with Write-Ahead Logging
  • Edge-First Design: Optimized for edge computing and local-first architectures
  • Namespace Isolation: Multi-tenancy support with namespace-based isolation

Architecture Highlights

┌───────────────────────────────────────────────┐ │ UnisonDB │ ├───────────────────────────────────────────────┤ Clients & Systems ────▶ │ HTTP API (REST / Txn) │ │ (Reads, Writes, Transactions) │ ├───────────────────────────────────────────────┤ │ Storage Engine │ │ ┌──────────┐ ┌──────────┐ ┌────────┐ │ │ │ KV │ │ Row │ │ LOB │ │ │ └──────────┘ └──────────┘ └────────┘ │ ├───────────────────────────────────────────────┤ │ Log-Native Core: WAL + MemTable + │ │ B+Tree (LMDB/BoltDB) │ ├───────────────────────────────────────────────┤ │ Streaming Replication │ │ (Hub-and-Spoke / Peer-to-Peer) │ └───────┬───────────────────────────┬───────────┘ │ │ ▼ ▼ ┌─────────────────┐ ┌─────────────────┐ │ Edge Replica │ ... │ Edge Replica │ │ Local Queries │ │ Local Queries │ └────────┬────────┘ └────────┬────────┘ │ │ │ (Post-Commit) │ (Post-Commit) ▼ ▼ ┌────────────────────────────┐ ┌────────────────────────────┐ │ ZeroMQ PUB/SUB Sidecar │ │ ZeroMQ PUB/SUB Sidecar │ │ • Local change feed │ │ • Local change feed │ │ • Runs on primary/edge │ │ • Runs on primary/edge │ └────────────────────────────┘ └────────────────────────────┘

Quick Start#

# Clone the repository git clone https://github.com/ankur-anand/unisondb cd unisondb # Build go build -o unisondb ./cmd/unisondb # Run in replicator mode (primary) ./unisondb server --mode replicator --config config.toml # Use the HTTP API curl -X PUT http://localhost:4000/api/v1/default/kv/mykey \ -H "Content-Type: application/json" \ -d '{"value":"bXl2YWx1ZQ=="}'

Deployment Topologies#

1. Single Server#

┌─────────────────┐ │ Primary Server │ │ (Server Mode) │ │ - HTTP API │ │ - Writes OK │ │ - Reads OK │ └─────────────────┘

Simple deployment for small workloads.

2. Primary + Replicas (Read Scaling)#

┌─────────────────┐ │ Primary Server │ │ (Server Mode) │ └────────┬────────┘ │ gRPC replication ┌────────┴────────┐ ↓ ↓ ┌─────────────┐ ┌─────────────┐ │ Relayer 1 │ │ Relayer 2 │ │ (Read-only) │ │ (Read-only) │ └─────────────┘ └─────────────┘

Primary handles all writes, relayers provide read scalability.

3. Hub-and-Spoke (Edge Computing)#

┌──────────────────┐ │ Central Hub │ │ (Server Mode) │ └────────┬─────────┘ │ gRPC replication ┌──────────┼──────────┐ ↓ ↓ ↓ ┌────────┐ ┌────────┐ ┌────────┐ │ Edge 1 │ │ Edge 2 │ │ Edge 3 │ │Relayer │ │Relayer │ │Relayer │ └───┬────┘ └───┬────┘ └───┬────┘ │ │ │ ZeroMQ ZeroMQ ZeroMQ ↓ ↓ ↓ Local Local Local Apps Apps Apps

Central hub replicates to many edge nodes. Each edge serves local apps via ZeroMQ.

4. Multi-Hub (Geographic Distribution)#

┌──────────────┐ ┌──────────────┐ │ Hub US-East │◄─────────►│ Hub Europe │ │ (Server Mode)│ gRPC │(Server Mode) │ └──────┬───────┘ bidirect.└──────┬───────┘ │ │ gRPC│ │gRPC ↓ ↓ ┌────────┐ ┌────────┐ │ East │ │ Europe │ │Relayers│ │Relayers│ └────────┘ └────────┘

Multiple hubs for geographic distribution. Each hub can be a server accepting local writes.

5. Multi-Hop Relay (Deep Edge)#

┌─────────┐ │ Primary │ (Server Mode) └────┬────┘ │ gRPC ↓ ┌─────────┐ │ Relay L1│ (Relayer Mode) └────┬────┘ │ gRPC ┌────┴─────┐ ↓ ↓ ┌─────────┐ ┌─────────┐ │Relay L2a│ │Relay L2b│ (Relayer Mode) └────┬────┘ └────┬────┘ │ │ ZeroMQ ↓ ↓ Local Local Apps Apps

Multi-hop replication for deep edge deployments.

6. Hybrid: Replication + Local Notifications#

┌─────────────────────────────────────┐ │ Primary Server │ │ (Server Mode) │ │ ┌──────────────┐ │ │ │ Storage │ │ │ └──────┬───────┘ │ │ │ │ │ ┌────┴────┐ │ │ ↓ ↓ │ │ [gRPC] [ZeroMQ] │ └───┬──────────┬──────────────────────┘ │ │ │ └──→ Local Apps (IPC) │ - Cache service │ - Analytics service │ - Audit logger ↓ Relayers (other machines)

Same instance uses gRPC for replication AND ZeroMQ for local notifications.

Use Cases#

Edge Computing#

Deploy UnisonDB at the edge for low-latency data access with automatic replication to central hubs.

Local-First Applications#

Build responsive applications that work offline and sync when connected.

Real-Time Analytics#

Stream data changes to analytics systems with sub-second latency.

Multi-Region Replication#

Replicate data across geographic regions with configurable consistency.

Documentation Structure#

License#

UnisonDB is released under the Apache 2.0 License.

Read Entire Article