Performance engineering without a latency budget is like financial planning without a budget: you might optimize individual expenses, but you have no idea whether the total adds up to what you need.
What is a latency budget? A latency budget allocates time to each component in a request path. If the user-facing SLA is 200ms, the budget assigns time to DNS resolution, TLS handshake, server processing, database queries, cache lookups, and network transit. Each component gets a target. The sum of targets equals the SLA. When a component exceeds its budget, it is identified and addressed—not as an optimization exercise but as a budget violation.
The theater of optimization. Common "optimizations" that do not matter: replacing a hash map with a binary search when both complete in microseconds; rewriting a loop in a language that is 2x faster when the loop body takes 0.1ms and the network round-trip takes 50ms. These exercises feel productive. They produce measurable improvements on benchmarks. They do not produce measurable improvements for users.
The slow paths that matter. In our audits, the components that consistently exceed their latency budgets are: database connection pool exhaustion, cache stampedes after cold starts, TLS negotiation for short-lived connections, and synchronous third-party API calls with no timeout budget. None of these are solved by micro-optimizations. They require architectural changes—connection pooling, cache warming, persistent connections, and asynchronous fallback patterns.
Government service requirements. EU digital service directives increasingly specify response time requirements. TED tenders for citizen-facing services include SLA commitments. SAM.gov performance requirements reference specific response time thresholds. A latency budget is the engineering artifact that demonstrates compliance with these requirements—not in aggregate, but component by component.
The discipline of latency budgeting produces a side benefit: it makes performance regressions visible immediately. When a component exceeds its budget, the alert fires before users notice degradation. This is the difference between reactive performance engineering—waiting for complaints—and proactive performance engineering—catching regressions at the component boundary.

