Suuchi - सूचि
Having inspired from tools like Uber's Ringpop and a strong desire to understand how distributed systems work - Suuchi was born.
Suuchi is toolkit to build distributed data systems, that uses gRPC under the hood as the communication medium. The overall goal of this project is to build pluggable components that can be easily composed by the developer to build a data system of desired characteristics.
This project is in beta quality and it's currently running couple of systems in production setting @indix. We welcome all kinds of feedback to help improve the library.
Read the Documentation at http://ashwanthkumar.github.io/suuchi.
Suuchi in sanskrit means an Index1.
Presentations
Following presentations / videos explain motivation behind Suuchi
- Why we built a distributed system at DSConf 2018.
- Video by @brewkode on Suuchi - Toolkit to build distributed systems at Fifth Elephant, 2017.
- Suuchi - Distributed Systems Primitives
- Suuchi - Application Layer Sharding
- Suuchi - Distributed Data Systems Toolkit
Notes
If you're getting ClassNotFound
exception, please run mvn clean compile
once to generate from the java classes from protoc files. Also, if you're using IntelliJ it helps to close the project when running the above command. It seems to auto-detect sources in target/
at startup but not afterwards.
Release workflow
Suuchi and it's modules follow a git commit message based release workflow. Use the script make-release.sh
to push an empty commit to the repository which would trigger a release workflow on travis-ci. More information can be found at docs.