/If-It-Fits-I-Commits

Distributed commit log written in golang, intended as a learning project only.

Primary LanguageGo

Actions Status Coverage Status

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.