Coping is the Problem

https://hackernoon.imgix.net/images/eIR6Ue3OqVhJQdcXPIewkz9nKHS2-le822lf.png

One of the principles that has stuck with me ever since I read The Systems Bible by John Gall is:

The problem isn't the problem, coping is the problem.

This principle encourages designing systems that continue functioning even when a component of the system fails. By way of example, let's consider HTTP requests. When an HTTP request fails, our first instinct is to add a retry. But adding retries doesn't actually fix the problem; the second request can fail. And the third. By adding retries, we've hopefully made the problem occur less frequently. But there is absolutely nothing we can do to ensure an HTTP request will always succeed. So, how do we cope?

To decide how to cope, we have to take a broader look at the system. Let's extend the example. The HTTP request is for push notifications between two servers: server A is the sender, B the...

Copyright of this story solely belongs to hackernoon.com. To see the full text click HERE

Read more