A framework health route that returns 200 if the application boots, next to ours that checks the database and the cache.
// the framework's, at /up
// returns 200 if the container built and the request
// reached a route. that is all, and that is useful.
// ours, at /health/deep
// touches the database, the cache and the queue
// connection, and reports the deployed commit.
// both kept. the load balancer uses /up; the deploy
// script and the monitoring use /health/deep.
These answer different questions and using one for both is the mistake — a load balancer probing a check that touches the database removes an instance when the database blips, which turns a slow query into an outage. Keeping the shallow one shallow is the whole discipline, and it is easy to erode one dependency at a time.