&quot;If something is a precondition then the app shouldn&#x27;t act like it wasn&#x27;t just to make Docker configuration easier. It needs to fail 
Fail fast doesn&#x27;t mean &quot;crash completely&quot;.  It means &quot;fallback to the next sensible approach&quot;.<p>&quot;But I dont&#x27; think application launch is the right time for it. Application launch is an opportunity to make sure that all dependencies were in place at some point. If things break later on, the odds of it being a temporary issue are much better.&quot;<p>This is presuming you or some human has control over the lifecycle of an individual process.<p>The trend in both mobile and cloud native is the process model, which says the opposite: your app process can and will be killed or relaunched any time by the underlying OS.  It may do so out of sequence with backing service availability.  This, retries (with a time or count bound, perhaps) are a sensible default.