Scaling and reliability

4 min read

Health Checks: Why “Process Is Running” Does Not Mean “Service Is Healthy”

A container can be running while being unable to serve customers because warm-up is incomplete, critical configuration failed, or local state is broken. Health checks should represent that distinction.

What Problem Are We Solving?

An orchestrator or load balancer sees the process from the outside. If a port is open, an instance may look healthy even though real requests cannot complete. The opposite mistake is dangerous too: if liveness depends on every external partner, a short third-party outage can make the platform restart otherwise healthy applications.

How It Works

Liveness answers whether the process should be restarted. Readiness answers whether it should receive user traffic right now. Those signals represent different states. Startup matters too: a new instance should not receive load before it can actually handle it.

What the Business Gets

The business gets fewer false failures during deployments and scaling. Traffic is less likely to reach instances that are technically running but operationally unready. Good checks also reduce restart storms that turn a small external failure into a major self-inflicted outage.

What the Team Gets

Teams get a formal contract between application and platform: when an instance is alive, when it is ready, and when replacement is useful. That improves rolling deployment, autoscaling, and automated recovery.

What the Customer Gets

Customers are less likely to land on a half-ready instance during deployment, warm-up, or partial failure.

What We Pay For It

An overly simple health check proves little; an overly complex one can become a source of instability itself. Checks must be tested with real failure modes or they become green lights with no useful meaning.

When Not to Add It

In dynamic multi-instance infrastructure, readiness and liveness are foundational. For one manually operated process, sophisticated health states may be unnecessary.

What to Ask Before the Decision

In the End

A health check is useful only when its signal matches the platform action it triggers. For the business, correct checks mean less traffic to unready instances and fewer automated reactions that create their own outage.