| ▲ | vbezhenar 2 hours ago | |
What I think today people do: 1. They run complicated infrastructure software, written by third-party developers. 2. And they run their own simple programs on top of them. So for example you can rent Kubernetes cluster from AWS and run simple HTTP server. If your server crashes, Kubernetes will restart it, so it's resilient. There will be records in some metrics which will light up some alerts and eventually people will know about it and will fix it. Another example: your simple program does some REST GET query. This query failed for some reason. But that query was intercepted by middleware proxy and that proxy determines that HTTP response was 5xx, so it can retry it. So it retries it few times with properly calibrated duration and eventually gets a response and propagates it back to the simple program. Simple program had no idea about all the stuff happening to make it work, it just threw HTTP query and got a response. There's a lot of complicated machinery to enable simple programs to be part of resilient architecture. That's a goal, anyway. | ||