Hi folks,
Our team at Comcast just open sourced a distributed systems library called Sirius that we've been developing for a couple of years. We'd love to hear your feedback and opinions:
http://comcast.github.io/sirius/
The use case that motivated us was a realization that an important set of reference data would fit in memory: if we could figure out a way to keep it eventually updated yet stored in-process in native datastructures, we'd get convenient, low-latency access
to it for our application server developers. This eventually led to Sirius, which is best described as an eventually consistent, replicated, persistent update stream.
Sirius is included in application servers as a library that handles establishing a consistent order to the updates (via a Paxos implementation written in Scala/Akka) and a "catch up" protocol that provides both fault recovery and a convenient replication scheme
for downstream, non-Paxos participating "followers."
We've been using Sirius-enabled applications for almost two years and it now powers multiple services from multiple teams.
Let us know what you think!
Thanks,
Jon
........
Jon Moore
Comcast