Sirius: A distributed system library from Comcast
comcast.github.io
comcast.github.io
Open sourcing stuff that costs them [very little] and may result in a cost savings in the future and doesn't allow you to disrupt their core business? Why not?
Maybe I'm just a bit cynical. ;)
People complain about comcast because they are the only choice - when you don't get a choice you hate what you get.
Their actual service is perfectly fine. I'm sure you can dig up some bad stories, but think about it from a percentage point of view: Comcast is huge, there are bound to be some problems, but as a percentage of total customer the number of problems is perfectly normal.
PS. No connection with Comcast, I have a sore spot about herd mentality. People just believe things without checking for themself (or based on anecdotes).
Said a different way:
If you have tons of choices you will highly review your choice as a form of choice validation. If you have only 1 or few choices you will only review the company if there are problems.
The result of that is poor reviews without actual poor service.
So, ummm, maybe you should ask if I've used them before going on a rant?
I just assumed it was because it was in reply to my comment. My mistake.
Comcast realized a long time ago that if they didn't want Google to eat their lunch, they needed to approach product development more like Google does. It's starting to pay off. I would expect to see more open source projects coming from them in the near future.
As a disclaimer I haven't looked at the implementations of either, only the documentation (and I used Hazelcast in a project a while ago).
I agree and I think we were looking at different dimensions: the consistency/partition tolerance story (the "distributed system" bits) seem more thought out in Sirius while the variety of data structures and connectors look more built up in HazelCast.
This may be an issue of documentation as well: Because it's built more "vertically" with a large consumer-facing cross-section (lots of data structures stacked over each other), the HazelCast documentation seems to be very use-oriented while the Sirius documentation focuses on the fundamentals.
I personally use it for a variety of tasks including distributed locks, a task tracker (think like hadoop) and for phases. If you're curious, here's the impl I'm talking about:
https://github.com/agibsonccc/java-deeplearning/blob/master/...
This is to augment an akka clustering distributed run time.
Sirius lives at a lower level: you could, for example, use Sirius to build the storage system backing a distributed Redis clone.
It's damn good at it too, but disassociating that network front-end may make sense in the future.
Additionally, we found that we needed some custom datastructures to get the performance we needed, so providing application developer control over those datastructures was an important motivation.
As such, you could set up a separate cluster running in "follower" mode, subscribing to the stream of updates and them writing them out to some other datastore.