The brain decides whether a conversation feels real long before any words are exchanged. A small delay between speaking and being heard tells the listener their words have weight. A delay slightly longer than that tells them the line is dead. Somewhere between those two states is a budget. The job of communication infrastructure is to spend that budget deliberately.
We use 150 milliseconds as the working envelope for one-way audio. That is roughly the upper bound of what the human auditory system parses as immediate. Push beyond it and listeners begin to talk over each other. Push much further and they stop talking at all.
Where the budget goes
Capture and encoding eat the first 20 to 40 milliseconds. The microphone driver, the audio pipeline, and the codec each take a slice. Modern Opus settings can deliver this in 20 ms on capable hardware, more on constrained devices.
Network transit is the largest line item and the one we have the least control over. Within a continent you can plan for 30 to 80 milliseconds of round-trip on healthy fiber. Across an ocean the floor is closer to 130. This is physics, not engineering, and it sets the hard limit on what is possible.
Jitter buffers and decode round out the cost. A jitter buffer trades latency for resilience. The right size depends on the worst path you intend to support, and changing the size dynamically as conditions shift is where most of the perceived quality is won.
What changes when you treat it as a budget
Once you frame latency as a budget, every component becomes an accountable line item. You stop accepting whatever the SDK gives you and start asking how each millisecond is spent. You begin to spend more on the segments you cannot reclaim, and less on the ones you can.
The systems that feel alive are not the ones with the fastest servers. They are the ones whose engineers decided, deliberately, what to spend the budget on.