5 ms·
Sounds like their argument hinges on the efficacy of systems like https://eng.uber.com/intro-to-ringpop https://eng.uber.com/intro-to-ringpop
by akkartik 8y ago
Sounds like their argument hinges on the efficacy of systems like https://eng.uber.com/intro-to-ringpop https://eng.uber.com/intro-to-ringpop
- sytse 8y agoYes, Ringpop was reference number 8 in the article. It is interesting that https://github.com/uber/ringpop-go https://github.com/uber/ringpop-go says: "This project is no longer under active development" So the time of Redis has passed but the successor has passed away as well?
- roskilli 8y agoBasically it's been deprecated in favor of using projects that are more mature like Apache Helix (but conversely more operationally intense to get started, requires Zookeeper and a bunch of things on top if you want to use it in a non-Java setting, i.e. with Go).
- Tharkun 8y agoI've really grown to dislike ZooKeeper. While incredibly useful, it's pretty awful. It's nearly impossible to secure in any non-trivial setup. And it's inane requirement to reserve a physical disk [1] for its transaction log is almost impossible to fulfil with virtualized hardware. [1] From the manual: > ZooKeeper's transaction log must be on a dedicated device.
- hadsed 8y agoIs this not the assumption of many SQL databases that make certain guarantees about complying with ACID? I'm not a DB expert but feels like something I've read before.
- tatersolid 7y agoNot since the 1990s
- bozoUser 8y agoReading about ringpop, came across this statement > Ringpop, a library for building cooperative distributed systems, solved some of Marketplace’s problems before its adoption in other teams at Uber and beyond. It gives the high-availability, partition-tolerant properties of distributed databases like DynamoDB or Riak to developers at the application level. I am wondering about the need to have your app services communicate with each other (is that because these are stateful applications ?) or have I missed the point completely ?
- roskilli 8y agoIt's to avoid the complicated routing problem (i.e. building a router microservice that sits in front of it), and encapsulate that in the service itself (by proxying internally to another part of the service after inspecting the request).
- bozoUser 8y agoyou mean like an orchestrator service ? ex: building for a uber eats system which depends on responses of systems (B, C, D..) where each of these systems have xx min SLA`s ?