{"id":16013022,"url":"https://github.com/bootjp/elastickv","last_synced_at":"2025-03-17T15:30:22.918Z","repository":{"id":215066568,"uuid":"724122345","full_name":"bootjp/elastickv","owner":"bootjp","description":"Elastickv: An experimental project aimed at developing a distributed key-value store for cloud environments, similar to DynamoDB. Plans to feature Raft-based replication, dynamic node scaling, and automatic hot spot re-allocation.","archived":false,"fork":false,"pushed_at":"2025-03-16T03:31:27.000Z","size":493,"stargazers_count":4,"open_issues_count":9,"forks_count":2,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-03-16T04:24:18.959Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bootjp.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":"2023-11-27T12:50:54.000Z","updated_at":"2025-03-16T03:31:29.000Z","dependencies_parsed_at":"2024-02-25T09:23:19.334Z","dependency_job_id":"2c9f3cf6-378f-4b34-acc7-cabea5b66263","html_url":"https://github.com/bootjp/elastickv","commit_stats":null,"previous_names":["bootjp/elastickv"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bootjp%2Felastickv","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bootjp%2Felastickv/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bootjp%2Felastickv/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bootjp%2Felastickv/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bootjp","download_url":"https://codeload.github.com/bootjp/elastickv/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243864822,"owners_count":20360360,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":[],"created_at":"2024-10-08T14:23:33.093Z","updated_at":"2025-03-17T15:30:22.618Z","avatar_url":"https://github.com/bootjp.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Elastickv\n\n## Overview\nElastickv is an experimental project undertaking the challenge of creating a distributed key-value store optimized for cloud environments, in a manner similar to DynamoDB. This project is currently in the planning and development phase, with the goal to incorporate advanced features like Raft-based data replication, dynamic node scaling, and automatic hot spot re-allocation. Elastickv aspires to be a next-generation cloud data storage solution, combining efficiency with scalability.\n\n**THIS PROJECT IS CURRENTLY UNDER DEVELOPMENT AND IS NOT READY FOR PRODUCTION USE.**\n\n## Planned Features\n- **Raft-based Data Replication**: Intends to implement data consistency and fault tolerance using the Raft consensus algorithm for distributed systems.\n- **Dynamic Node Scaling**: Aims to dynamically adjust nodes and partition keys in response to variable loads, inspired by DynamoDB's cloud scalability.\n- **Automatic Hot Spot Re-allocation**: Plans to incorporate the capability to identify and reallocate hot spots in real-time, to improve system performance and efficiency in cloud settings.\n\n## Development Status\nElastickv is in the experimental and developmental phase, aspiring to bring to life features that resonate with industry standards like DynamoDB, tailored for cloud infrastructures. We welcome contributions, ideas, and feedback as we navigate through the intricacies of developing a scalable and efficient cloud-optimized distributed key-value store.\n\n\n## Example Usage\n\nThis section provides sample commands to demonstrate how to use the project. Make sure you have the necessary dependencies installed before running these commands.\n\n### Starting the Server\nTo start the server, use the following command:\n```bash\ngo run cmd/server/demo.go\n```\n\n### Starting the Client\n\nTo start the client, use this command:\n```bash\ngo run cmd/client/client.go\n```\n\n### Working with Redis\nTo start the Redis client:\n```bash\nredis-cli -p 63791\n```\n\n#### Setting and Getting Key-Value Pairs\nTo set a key-value pair and retrieve it:\n```bash\nset key value\nget key\nquit\n```\n\n### Connecting to a Follower Node\nTo connect to a follower node:\n```bash\nredis-cli -p 63792\nget key\n```\n\n### Redirecting Set Operations to Leader Node\n```bash\nredis-cli -p 63792\nset bbbb 1234\nget bbbb\nquit\n\nredis-cli -p 63793\nget bbbb\nquit\n\nredis-cli -p 63791\nget bbbb\nquit\n```\n\n\n### Development\n\n\n### Setup pre-commit hooks\n```bash\ngit config --local core.hooksPath .githooks\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbootjp%2Felastickv","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbootjp%2Felastickv","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbootjp%2Felastickv/lists"}