Development Roadmap
Where We're Going
A contest of focus. Keep yours made of steel.
Phase 1 — Core Engine & Persistence
DoneHigh-performance in-memory key/value store with shared-nothing architecture, zero-copy binary protocol, Redis-compatible RESP2, and per-shard WAL persistence.
Sharded In-Memory Engine Docs →
- N shards (default GOMAXPROCS) with per-shard RWMutex
- FNV-1a key hash routing — no cross-shard coordination
- Configurable via --num-shards
Dual Protocol Support Docs →
- Zero-copy binary protocol (GET/SET/DEL)
- Redis-compatible RESP2 (PING/GET/SET/DEL)
- Same storage engine behind both protocols
TTL Eviction Docs →
- Active timing wheel — O(1) per-tick eviction
- Lazy eviction on read for expired keys
- Configurable --evict-interval and --evict-slots
At-Rest Encryption Docs →
- ChaCha20-Poly1305 encryption, off by default
- Optional --encryption-key flag
Observability Docs →
- Built-in Prometheus metrics exporter
- OpenTelemetry (OTLP/gRPC) tracing
Per-Shard WAL Persistence Docs →
- Append-only write-ahead log per shard
- TTL-aware replay on startup
- Tombstone deletes and crash-safe truncation
- Zero-allocation writes — enabled with --enable-persistence
Phase 2 — Security & Transport
In ProgressProduction readiness hinges on transport encryption and authentication.
2a — TLS / mTLS Transport
- TLS 1.3 support for binary and RESP2 listeners
- Mutual TLS for service-to-service auth in Kubernetes
- Automatic certificate rotation via filesystem watcher or K8s Secret projection
- STARTTLS upgrade path for RESP connections
2b — Authentication & Authorization
- AUTH command for RESP protocol (password-based)
- AUTH handshake for binary protocol (challenge-response)
- API key system with per-key ACLs
- OIDC / OAuth2 integration for SSO
- ACL SETUSER / DELUSER / LIST for runtime access rules
- Audit logging
2c — Encryption Key Management
- Key rotation command — re-encrypt all values in-place
- Key derivation from environment / Vault / KMS
- Envelope encryption — master key decrypts per-shard DEKs
Phase 3 — Data Durability & Recovery
PlannedWAL compaction, portable snapshots, and off-site backup.
3a — WAL Compaction & Optimization
- Background WAL compaction — merge and deduplicate records
- WAL file rotation — split by size or time
- Incremental WAL replay for faster startup
3b — Full-Database Snapshots
- BGSAVE command — fork-free snapshot to compact binary format
- Snapshot integrity via xxHash / SHA-256 checksums
- LASTSAVE command
- Point-in-time recovery — snapshot + WAL replay
- Snapshot streaming — SAVE TO STDOUT
3c — Backup Integration
- Pluggable backup backends: local FS, S3, GCS, Azure Blob
- Encrypted backups with ChaCha20-Poly1305
- Backup rotation policies
- RESTORE command to rehydrate an empty instance
3d — Better Persistence Backend
- Optional write-through mode via SQLite / BoltDB
- LSM-tree-inspired tiered storage
- MIGRATE command — move keys between shards
Phase 4 — Intelligence Layer
PlannedVector search designed into the shared-nothing architecture from the start.
4a — Vector Index Foundation
- New vector shard type — fixed-dimension float32 embeddings
- VADD / VGET / VDEL / VCOUNT commands
4b — Approximate Nearest Neighbor Search
- VSEARCH with KNN query support
- HNSW index — high-recall, low-latency
- IVF with product quantization — memory-efficient for large datasets
- Configurable distance metrics: cosine, L2, inner product
4c — Vector Metadata Filtering
- SQL-like WHERE clause on metadata
- Filtered HNSW — pre-filter at graph traversal time
- Composite indexes — similarity + metadata filter in one query
4d — AI Integration Points
- Bulk ingestion pipeline — VIMPORT FROM CSV/JSON
- Streaming ingestion from Kafka / NATS / gRPC
- Integration hooks for LLM pipelines
- Dimension auto-detection from first inserted vector
Phase 5 — Ecosystem & Operations
PlannedClient SDKs, protocol extensions, cluster mode, and write-through adapters.
5a — Client SDKs
- Go client — official, high-performance
- Python client with async support
- Node.js client — TypeScript-first
- Connection pooling, auto-reconnect, pub/sub in all SDKs
5b — Protocol Extensions
- RESP3 support
- Memcached protocol support (binary and text)
- gRPC service definition for structured RPC
5c — Cluster Mode
- Consistent hashing across nodes
- Peer-to-peer replication (Raft or CRDTs)
- CLUSTER INFO / CLUSTER NODES for topology discovery
- Automatic failover and rebalancing
5d — Write-Through to External DBs
- PostgreSQL, MariaDB, MSSQL write-through adapters
- Configurable write policies: sync, async, batched
- Read-through caching
Phase 6 — Observability & Developer Experience
PlannedBuilt-in dashboard, query layer, and operational tooling.
6a — Built-in Dashboard
- Lightweight embedded web UI (single binary)
- Real-time shard stats: keys, memory, hit rate, ops/sec
- TTL histogram, eviction rate, WAL lag visualization
- Connection inspector
6b — Query Layer
- Wire SQL parser into the server
- Full SQL-like queries with WHERE, LIKE, TTL filters
- Slow query logging with configurable threshold
- EXPLAIN query plan output
6c — Operational Tooling
- INFO command — comprehensive server statistics
- CONFIG SET / CONFIG GET — runtime config changes
- SLOWLOG — track and query slow operations
- MEMORY DOCTOR — usage analysis and suggestions
- Graceful shard migration for rolling upgrades
Design Principles
These guide every decision on this roadmap:
Zero-allocation hot path
Performance is the core value prop; never regress the hot path.
Shared-nothing first
Avoid shared state; coordinate only when absolutely necessary.
Optional everything
Every feature is opt-in, disabled by default, zero cost when off.
Single binary
No external dependencies; embed what you can, link what you must.
Security by default
TLS and auth should be trivially deployable, not an afterthought.
Cloud-native
Kubernetes-native config, graceful shutdown, Prometheus metrics, OTLP tracing.