Dokku is a wonderful tool for quickly deploying apps to production, but it's missing zero downtime deploys. Not anymore!
Even our svelte Node.js app needs a few seconds to fully load the main code, and open connections to back-ends servers, before it can start handling requests.
The thing with Dokku: it switches traffic over to the new container before the server loads complete, so each deploy has several seconds of downtime.
That's best case scenario. When we screw deployment (usually some configuration issue that's different in production), even the quickest hands in the west, you still get a few minutes of downtime.
And so it became necessary that I learn how to catch and handle exceptions in Bash (yay, traps!) and shift a few lines of code around.