If It Fits... I Commits
... and if it doesn't fit you can still commit because this is distributed. Yay!
Motivation
Intended for learning purposes only. I wanted to gain experience with golang while learning about distributed data systems.
Some of the most helpful links:
Service discovery is enabled by HashiCorp Serf while consensus across nodes is provided by HashiCorp Raft.
Build a Log
- Record: The literal stored data.
- Store: File that stores records.
- Index: File that holds indexes.
- Segment: Abstraction tying together Indexes and Stores.
- Log: Abstraction tying together multiple Segments.