/suuchi

सूचि - Toolkit to build Distributed Data Systems

Primary LanguageScala

Build Status codecov

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

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.

License

https://www.apache.org/licenses/LICENSE-2.0