A few years back, a colleague and me built a distributed system toolkit in an effort to understand the blocks/pieces of a distributed system and also to make it easier to build one for our needs. This article seems to hit on the same set of notes that we had in mind when we started out building suuchi.
https://github.com/ashwanthkumar/suuchi.