Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/aarthikrao/timeMachine
A distributed fault tolerant scheduler that is horizontally scalable 🔥
https://github.com/aarthikrao/timeMachine
boltdb database distributed-systems golang grpc raft raft-consensus-algorithm scheduler
Last synced: 3 days ago
JSON representation
A distributed fault tolerant scheduler that is horizontally scalable 🔥
- Host: GitHub
- URL: https://github.com/aarthikrao/timeMachine
- Owner: aarthikrao
- License: mit
- Created: 2022-10-27T16:36:04.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-06-16T17:34:21.000Z (5 months ago)
- Last Synced: 2024-08-02T20:45:57.536Z (3 months ago)
- Topics: boltdb, database, distributed-systems, golang, grpc, raft, raft-consensus-algorithm, scheduler
- Language: Go
- Homepage:
- Size: 2.09 MB
- Stars: 91
- Watchers: 8
- Forks: 11
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.md
- Roadmap: docs/Roadmap.md
Awesome Lists containing this project
README
# Time Machine DB 🐓
[![Slack](https://img.shields.io/badge/Slack-4A154B?style=for-the-badge&logo=slack&logoColor=white)](https://join.slack.com/t/timemachinedb/shared_invite/zt-1nnti899g-6XppaC~5kqF0QAqALBgxqw)
![Status](https://img.shields.io/badge/Status-Development-3ac952?style=for-the-badge)A distributed, fault tolerant scheduler database that can potentially scale to millions of jobs.
The idea is to build it with a storage layer based on B+tree implementation, distributed hash table for load balancing, and raft for consensus.
## 🧬 Documentation
- [Purpose](./docs/Purpose.md)
- [Architecture](./docs/Architecture.md) • [Components of a node](/components/Components.md) • [Also read](./docs/Refer.md)
- [Developer APIs](./docs/DevAPI.md) • [Job APIs](./docs/DevAPI.md#-job-apis) • [Route APIs](./docs/DevAPI.md#-route-apis)
- [TODO](./docs/TODO.md)![Cluster animation](/docs/images/cluster_animation.gif)
## 🎯 Quick start
```bash
# Build
❯ go build# Clean and create 5 data folders
❯ ./scripts/clean-create.sh 5# Spawn 5 instances
❯ ./scripts/spawn.sh 5 true# Create a cluster
❯ ./scripts/join.sh 5# Specify the slots per node
❯ ./scripts/configure.sh 4# Check status
❯ ./scripts/status.sh 5
```
Checkout the [detailed guide](/docs/Setup.md)## 🎬 Roadmap
You can find the [roadmap here](/docs/Roadmap.md)## 🛺 Tech Stack
Time machine is built on
* [BBoltDB](https://github.com/etcd-io/bbolt)
* [Raft](https://raft.github.io/)
* [Distributed hash table](https://en.wikipedia.org/wiki/Distributed_hash_table)
* [GRPC](https://grpc.io/)For more details checkout our [Tech stack](/docs/Refer.md#🛺-tech-stack)
## ⚽ Contribute
* Choose a component to work on.
* Research the component thoroughly.
* Reach out to me, so that I can mark it as "Work in Progress" to prevent duplication of efforts.
* Build, code, and test the component.
* Submit a pull request (PR) when you are ready to have your changes reviewed.Refer [Contributing](./CONTRIBUTING.md) for more