Distributed systems is more than just consensus protocols.
At minimum, you need to start dealing with things like service discovery and accounting for all of the edge cases where one part of your system is up while another part is down, or how to deal with all of the transitional states without losing work.
> Why? Because putting things behind a network can, counter intuitively, lead to more resilient systems
If you're creating resiliency to a set of problems that you've created by going to a distributed system, it's not necessarily a net win.
> At minimum, you need to start dealing with things like service discovery and accounting for all of the edge cases where one part of your system is up while another part is down, or how to deal with all of the transitional states without losing work.
I really don't get this phobia. You already have to deal with that everywhere, don't you? I mean, you run a database. You run a web app calling your backend. You run mobile clients calling your backend. You call with services. The distributed system is more often than not already there. Why are we fooling ourselves into believing that just because you choose to bundle everything in a mega-executable that you're not running a distributed system?
If anything,explicitly acknowledging that you already run a distributed system frames the problem ina way that you are forced to face failure modes you opt to ignore.
At minimum, you need to start dealing with things like service discovery and accounting for all of the edge cases where one part of your system is up while another part is down, or how to deal with all of the transitional states without losing work.
> Why? Because putting things behind a network can, counter intuitively, lead to more resilient systems
If you're creating resiliency to a set of problems that you've created by going to a distributed system, it's not necessarily a net win.