A distributed, in-memory key-value cache built in Rust. Redis-like functionality with focus on concurrency, networking, and systems design.
Current State: ~85% complete — production-ready single-node cache with full observability
Goal: Production-grade distributed cache suitable for portfolio and technical interviews
| Layer | Status |
|---|---|
| 1. Single-Node Cache Engine | ✅ Complete |
| 2. Protocol & API (RESP) | ✅ Complete |
| 3. Concurrency Model | ✅ Complete |
| 4. Distribution | ⏸️ Deferred (optional) |
| 5. Observability (logs + traces + metrics over OTLP) | ✅ Complete |
| 6. Deployment (Kubernetes) | ⏭️ Next |
# Build
cargo build
# Run tests
cargo test
# Run with clippy
cargo clippy
# Format code
cargo fmtFerroCache is built in six layers:
- Single-Node Cache Engine - Concurrent hashmap with LRU eviction and TTL
- Protocol & API - Redis RESP protocol over async TCP (Tokio)
- Concurrency Model - Optimized for read-heavy workloads
- Distribution - Consistent hashing and node discovery (stretch goal)
- Observability - Prometheus metrics, structured logging, health endpoints
- Deployment - Kubernetes manifests (StatefulSet, Service, HPA)
See ARCHITECTURE.md for detailed design.
GET key- Retrieve valueSET key value [EX seconds]- Set value with optional TTLDEL key- Delete keyEXPIRE key seconds- Set TTLTTL key- Get remaining TTLPING- Health check
Connect with any Redis client: redis-cli -p 6379 PING.
All three pillars export over OpenTelemetry (OTLP) to a collector. A ready-to-run
Elasticsearch + Kibana + APM Server stack lives in deploy/.
# point FerroCache at a collector (config file or env var)
OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4317 cargo runSee deploy/README.md for the full stack and verification steps.
- Language: Rust (2021 edition)
- Async Runtime: Tokio
- Concurrency: DashMap (sharded lock-free map)
- Protocol: Redis RESP
- Observability: tracing + OpenTelemetry (OTLP) → Elasticsearch/Kibana
- Deployment: Kubernetes (planned)
This project demonstrates:
- ✅ Rust concurrency patterns and atomics
- ✅ Async networking with Tokio
- ✅ Distributed systems design
- ✅ Production observability practices
- ✅ Kubernetes deployment patterns
- Persistence / snapshots (AOF, RDB)
- Pub/sub messaging
- Lua scripting
- Full cluster consensus (Raft)
- Authentication / TLS
These are documented to show understanding of the full problem space.
- CLAUDE.md - Project context and layer roadmap
- ARCHITECTURE.md - Detailed technical design
- STUDY_PLAN.md - Interactive learning guide
- deploy/README.md - Observability stack (Elasticsearch + Kibana + OTLP)
- CLAUDE_WORKFLOW.md - Working with Claude Code
[TBD]
Built as a learning project to demonstrate Rust systems programming, distributed systems design, and production engineering practices.