4 ms·
Ask HN: How would you approach horizontal scaling of your software?
Hi,
I'm currently thinking about how to best implement partitioning/replication of my Open Source storage system written in Java. I've read "Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems" which is a great book, but I'd love more resources. At work we basically used Ignite for our application and horizontal scaling in the Cloud with a distributed file system, but the latter is something I clearly want to avoid.
So, do you have some resources/tips? I clearly want to have transactions based on some consensus algorithm and a single leader, which accepts writes. But basically I want to read more about the whole topic before moving forward and develop epics/tasks.
Do you have any resources / best practices? Nowadays it seems that almost everyone puts his software into the cloud via Docker/Kubernetes and some data grid, but I guess it's still complicated to do it right :-)
Kind regards and happy easter
Johannes
- mtmail 8y agohttps://en.wikipedia.org/wiki/Apache_ZooKeeper https://en.wikipedia.org/wiki/Apache_ZooKeeper was created to help other systems scale horizontally, e.g. it takes care of https://en.wikipedia.org/wiki/Leader_election https://en.wikipedia.org/wiki/Leader_election and all the edge cases one would want to "outsource".
- lichtenberger 8y agoHey, thanks :-) it could also be done via Apache Ignite, I think... but Zookeeper might be much more advanced in this regard. Thank you :-)