I agree with the general idea, let an already existing product handle problems that everyone has. The last part is still important though, if we are going to build &quot;distributed&quot; apps, then we <i>need</i> to handle those dependencies failing or being briefly unavailable.<p>And the reality is that every app becomes distributed as soon as it has a database or client. A ton of legacy applications make the implicit assumption that the network is reliable, and fall over hard when it isn&#x27;t true anymore.