{"id":13613992,"url":"https://github.com/aarthikrao/timeMachine","last_synced_at":"2025-04-13T18:31:55.964Z","repository":{"id":65417228,"uuid":"558486244","full_name":"aarthikrao/timeMachine","owner":"aarthikrao","description":"A distributed fault tolerant scheduler that is horizontally scalable 🔥","archived":false,"fork":false,"pushed_at":"2024-06-16T17:34:21.000Z","size":2192,"stargazers_count":91,"open_issues_count":3,"forks_count":11,"subscribers_count":8,"default_branch":"main","last_synced_at":"2024-08-02T20:45:57.536Z","etag":null,"topics":["boltdb","database","distributed-systems","golang","grpc","raft","raft-consensus-algorithm","scheduler"],"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/aarthikrao.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":"docs/Roadmap.md","authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-10-27T16:36:04.000Z","updated_at":"2024-06-16T17:34:24.000Z","dependencies_parsed_at":"2023-12-16T07:39:34.514Z","dependency_job_id":"2a92858c-3e3a-49aa-86f7-fde0d15acbde","html_url":"https://github.com/aarthikrao/timeMachine","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aarthikrao%2FtimeMachine","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aarthikrao%2FtimeMachine/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aarthikrao%2FtimeMachine/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aarthikrao%2FtimeMachine/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aarthikrao","download_url":"https://codeload.github.com/aarthikrao/timeMachine/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248760428,"owners_count":21157356,"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":["boltdb","database","distributed-systems","golang","grpc","raft","raft-consensus-algorithm","scheduler"],"created_at":"2024-08-01T20:00:55.542Z","updated_at":"2025-04-13T18:31:54.654Z","avatar_url":"https://github.com/aarthikrao.png","language":"Go","funding_links":[],"categories":["Go"],"sub_categories":[],"readme":"# Time Machine DB 🐓\n[![Slack](https://img.shields.io/badge/Slack-4A154B?style=for-the-badge\u0026logo=slack\u0026logoColor=white)](https://join.slack.com/t/timemachinedb/shared_invite/zt-1nnti899g-6XppaC~5kqF0QAqALBgxqw) \n![Status](https://img.shields.io/badge/Status-Development-3ac952?style=for-the-badge)\n\nA distributed, fault tolerant scheduler database that can potentially scale to millions of jobs. \n\nThe idea is to build it with a storage layer based on B+tree implementation, distributed hash table for load balancing, and raft for consensus.\n\n## 🧬 Documentation\n- [Purpose](./docs/Purpose.md)\n- [Architecture](./docs/Architecture.md) • [Components of a node](/components/Components.md) • [Also read](./docs/Refer.md)\n- [Developer APIs](./docs/DevAPI.md) • [Job APIs](./docs/DevAPI.md#-job-apis) • [Route APIs](./docs/DevAPI.md#-route-apis)\n- [TODO](./docs/TODO.md)\n\n![Cluster animation](/docs/images/cluster_animation.gif)\n\n## 🎯 Quick start\n\n```bash\n# Build \n❯ go build\n\n# Clean and create 5 data folders\n❯ ./scripts/clean-create.sh 5\n\n# Spawn 5 instances\n❯ ./scripts/spawn.sh 5 true\n\n# Create a cluster\n❯ ./scripts/join.sh 5\n\n# Specify the slots per node\n❯ ./scripts/configure.sh 4\n\n# Check status\n❯ ./scripts/status.sh 5\n```\nCheckout the [detailed guide](/docs/Setup.md)\n\n## 🎬 Roadmap\nYou can find the [roadmap here](/docs/Roadmap.md)\n\n## 🛺 Tech Stack\nTime machine is built on \n* [BBoltDB](https://github.com/etcd-io/bbolt)\n* [Raft](https://raft.github.io/)\n* [Distributed hash table](https://en.wikipedia.org/wiki/Distributed_hash_table)\n* [GRPC](https://grpc.io/)\n\nFor more details checkout our [Tech stack](/docs/Refer.md#🛺-tech-stack)\n\n## ⚽ Contribute\n* Choose a component to work on.\n* Research the component thoroughly.\n* Reach out to me, so that I can mark it as \"Work in Progress\" to prevent duplication of efforts.\n* Build, code, and test the component.\n* Submit a pull request (PR) when you are ready to have your changes reviewed.\n\n\nRefer [Contributing](./CONTRIBUTING.md) for more","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faarthikrao%2FtimeMachine","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faarthikrao%2FtimeMachine","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faarthikrao%2FtimeMachine/lists"}