A lightweight, distributed key-value storage system written in Go that provides high availability through data replication across multiple nodes.
- Distributed Storage: Data is automatically replicated across multiple nodes for fault tolerance
- Multiple Storage Backends: Choose between in-memory or persistent disk-based storage
- HTTP REST API: Simple JSON-based API for all operations
- Configurable Replication: Adjust replication factor based on your availability requirements
- Health Checks: Built-in health monitoring endpoints
- Graceful Shutdown: Proper handling of shutdown signals for data integrity
POST /set- Store a key-value pairGET /get/{key}- Retrieve a value by keyDELETE /delete/{key}- Remove a key-value pairGET /keys- Get all stored key-value pairsGET /health- Health check endpoint
POST /internal/set- Internal replication endpoint for SET operationsDELETE /internal/delete/{key}- Internal replication endpoint for DELETE operations
- Go 1.25 or later
- Clone the repository:
git clone https://github.com/Julzz10110/DiStore.git
cd DiStore