Evolve MiniRedis into a production-grade, multi-tenant, in-memory platform with:
- reliable runtime node lifecycle,
- historical observability,
- event-driven extensions,
- backup and compliance capabilities.
Purpose:
- tenant-scoped publish/subscribe channels.
Capabilities:
- publish API,
- subscribe/consumer API,
- replay policy by tenant level (optional),
- delivery metrics.
Dependencies:
- gateway integration,
- auth context propagation,
- optional NATS/Kafka backend.
Purpose:
- scheduled backup and restore for metadata/state snapshots.
Capabilities:
- scheduled backup jobs,
- checksum verification,
- restore workflows,
- backup catalog.
Dependencies:
- postgres access,
- object storage target.
Purpose:
- periodic background tasks.
Capabilities:
- stale-node cleanup,
- metric rollups,
- quota and maintenance jobs.
Purpose:
- operational alerts from monitoring signals.
Capabilities:
- threshold policies,
- rule engine,
- Slack/email/webhook notifications.
Purpose:
- immutable action log for security/compliance.
Capabilities:
- record user actions,
- record privileged operations,
- searchable audit timeline.
- api-gateway + backend + auth + audit + scheduler.
- Handles identity, policy, metadata, and orchestration.
- node-manager and runtime tenant nodes.
- Handles in-memory command execution and live state.
- monitoring-service + metrics store + alert-service.
- Handles real-time plus historical visibility.
- backup-service + restore workflows + runbooks.
- contract versioning and schema enforcement.
- end-to-end integration test suite.
- strict health/readiness for every service.
- pub/sub service baseline.
- backup/restore baseline.
- scheduler jobs baseline.
- alert routing and escalation.
- audit indexing and retention policy.
- usage metering and tenant billing hooks.
- sharding strategy for node runtime.
- replication/failover model.
- policy-driven tenant QoS classes.
Current fixed service ports:
- gateway 8080, backend 5500, node-manager 7000, monitoring 9000, auth 8000, frontend 5173.
Future recommended internal ports:
- pubsub-service: 9100
- backup-service: 9200
- scheduler-service: 9300
- alert-service: 9400
- audit-service: 9500
Keep them internal-only behind gateway unless explicitly required.
- API availability >= 99.9%
- Monitoring freshness delay < 10s
- p95 control-plane latency < 300ms
- automatic rollback on failed deployment health gates
- Wave 1: stabilize contracts and tests.
- Wave 2: deploy pub/sub + scheduler skeleton services.
- Wave 3: backup + alert + audit services.
- Wave 4: scale, policy, and production optimization.
Purpose:
- allow users to connect using standard redis-cli and libraries
Capabilities:
- implement RESP parser
- support core commands (GET, SET, DEL, EXPIRE)
- handle multiple concurrent TCP connections
Purpose:
- allow external access to tenant nodes
Capabilities:
- expose node ports securely
- return connection details to users
- optional domain-based routing
Example: redis-cli -h your-domain.com -p 6001
Purpose:
- secure tenant access
Capabilities:
- per-node password
- AUTH command support
- token-based validation via gateway
Purpose:
- allow developers to use MiniRedis in their apps
Capabilities:
- Node.js SDK
- Python SDK
- connection helpers
- environment-based config
Purpose:
- remove port-based limitation
Design:
- single node-manager port
- internal tenant routing
- in-memory tenant isolation
Benefits:
- infinite tenant scalability
- no port exhaustion
- better performance
Purpose:
- scale system horizontally
Capabilities:
- multiple node-managers
- tenant-to-node mapping
- consistent hashing
Purpose:
- avoid data loss
Capabilities:
- snapshot (RDB-like)
- append-only logs (AOF-like)
- restore mechanism
Purpose:
- improve developer experience
Capabilities:
- custom CLI (miniredis-cli)
- connect, list nodes, monitor usage
- execute commands
Purpose:
- prevent abuse
Capabilities:
- per-tenant limits
- request throttling
- usage tracking
Purpose:
- give insights to users
Capabilities:
- memory usage per tenant
- command metrics
- latency tracking