Definition
A system failure mode that arises when finite resources required for operation (memory, file descriptors, threads, storage, CPU cycles, network bandwidth, energy, etc.) are depleted or become unavailable, preventing normal functioning or causing degraded, stalled, or crashed behavior.
Principle
Principle
Systems allocate limited resources; correct operation relies on balanced allocation, reclamation, and throttling. Without bounds, leaks, unbounded growth, contention, or misconfiguration convert finite capacity into a failure surface.
Demonstration
Demonstration
Concrete scenario: a long-running service with a memory leak slowly consumes heap until the OS kills the process for out-of-memory; a server that opens sockets per request exceeds the file-descriptor limit and refuses new connections; a container hits CPU or memory quotas and is throttled or evicted by the orchestrator.
Misapplication
Misapplication
Treating resource exhaustion as merely 'too slow' or assuming it is always recoverable by restarting. Another mistake is addressing only one resource (e.g., memory) while ignoring correlated limits (file handles, ephemeral ports) that actually cause the outage.
Consequence
Consequence
Properly diagnosed, resource exhaustion drives fixes such as leak repair, backpressure, pooling, quotas, and graceful degradation; if unaddressed it produces intermittent outages, denial-of-service conditions, diminished reliability, and can cascade (e.g., retries amplifying load).
Reversal
Reversal
Invert by designing for conservation and boundedness: use quota limits, circuit breakers, admission control, connection pooling, and explicit resource reclamation so systems fail gracefully or shed load instead of exhausting capacity.
Boundary
Boundary
Covers finite, addressable computational and infrastructural resources; excludes permanent hardware failures (although they can look similar) and intentional throttling designed as a policy. The entry focuses on capacity exhaustion rather than algorithmic inefficiency that reduces throughput without reaching absolute limits.
Semantic Tension
Semantic Tension
Often conflated with starvation (lack of CPU due to scheduling), leaks (gradual unreturned allocations), and overload (sudden spike). The tension is whether the root cause is finite-capacity limits, scheduling unfairness, or software defects causing unbounded demand.
Synthesis
Synthesis
Resource exhaustion is the class of failures that occur when a system's finite assets are consumed faster than they can be replenished or reclaimed; addressing it requires measurement, bounding, reclamation, and architectural controls to prevent local depletion from producing systemic failures.