{"id":20558528,"url":"https://github.com/ravikisha/distributed-kv-database","last_synced_at":"2026-01-25T07:35:15.172Z","repository":{"id":260680542,"uuid":"882036313","full_name":"Ravikisha/Distributed-KV-Database","owner":"Ravikisha","description":"The Distributed Key-Value Database is a scalable, fault-tolerant key-value store implemented in Go. It is designed to handle large amounts of data across multiple nodes while providing high availability and performance. This project demonstrates key features such as sharding, replication, and multithreading .","archived":false,"fork":false,"pushed_at":"2024-11-01T19:35:48.000Z","size":5344,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-09-25T21:37:49.738Z","etag":null,"topics":["database","distributed-systems","golang","replication","sharding"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Ravikisha.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-11-01T18:41:16.000Z","updated_at":"2024-11-09T14:58:27.000Z","dependencies_parsed_at":"2024-11-01T20:28:31.396Z","dependency_job_id":null,"html_url":"https://github.com/Ravikisha/Distributed-KV-Database","commit_stats":null,"previous_names":["ravikisha/distributed-kv-database"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Ravikisha/Distributed-KV-Database","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ravikisha%2FDistributed-KV-Database","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ravikisha%2FDistributed-KV-Database/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ravikisha%2FDistributed-KV-Database/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ravikisha%2FDistributed-KV-Database/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Ravikisha","download_url":"https://codeload.github.com/Ravikisha/Distributed-KV-Database/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ravikisha%2FDistributed-KV-Database/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28747631,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-25T05:12:38.112Z","status":"ssl_error","status_checked_at":"2026-01-25T05:04:50.338Z","response_time":113,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["database","distributed-systems","golang","replication","sharding"],"created_at":"2024-11-16T03:44:26.703Z","updated_at":"2026-01-25T07:35:15.156Z","avatar_url":"https://github.com/Ravikisha.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Banner](./docs/banner.png)\n# Distributed Key-Value Database\n\n## Description\n\nThe Distributed Key-Value Database is a scalable, fault-tolerant key-value store implemented in Go. It is designed to handle large amounts of data across multiple nodes while providing high availability and performance. This project demonstrates key features such as sharding, replication, and multithreading to ensure efficient data storage and retrieval.\n\n\u003e Check out the [blog post](https://medium.com/@ravikishan63392/from-theory-to-practice-developing-a-distributed-key-value-database-with-sharding-and-replication-541dfef74fec) for a detailed explanation of the project.\n\n## Features\n\n- **Distributed Architecture**: Supports multiple nodes for data distribution and redundancy.\n- **Sharding**: Distributes data across different nodes to optimize performance and storage.\n- **Replication**: Ensures data durability and availability by maintaining copies across nodes.\n- **Multithreading**: Utilizes goroutines for concurrent data access and processing.\n- **Optimized Search**: Built-in indexing for fast key lookups and retrieval.\n\n![Architecture](./docs/diagram.png)\n\n## Getting Started\n\n### Prerequisites\n\n- Go (version 1.16 or higher)\n- Make\n\n### Installation\n\n1. Clone the repository:\n   ```bash\n   git clone https://github.com/Ravikisha/Distributed-KV-Database.git\n   cd Distributed-KV-Database\n   ```\n\n2. Build the project:\n   ```bash\n   go build\n   ```\n\n3. Run the application:\n   ```bash\n   $ ./launch.sh\n   ```\n\n### Configuration\n\nThe database configuration can be adjusted in the `sharding.toml` file. Modify parameters such as the number of shards, replication factors, and node addresses as needed.\n\n## Usage\n\nYou can interact with the database using HTTP API endpoints. Below are a few examples:\n\n- **PUT** a key-value pair:\n  ```bash\n  curl -X PUT http://localhost:8080/set?key=exampleKey\u0026value=exampleValue\n  ```\n\n- **GET** a value by key:\n  ```bash\n  curl http://localhost:8080/get?key=exampleKey\n  ```\n## Contributing\n\nContributions are welcome! Please open an issue or submit a pull request.\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fravikisha%2Fdistributed-kv-database","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fravikisha%2Fdistributed-kv-database","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fravikisha%2Fdistributed-kv-database/lists"}