Backpressure часто сначала виден как symptom: растёт latency, заполняются queues или consumer начинает отставать. Симптом реален, но не показывает, какая boundary saturated. Producer burst, slow downstream stage, overloaded validation step и observation gap могут выглядеть одинаково.
Instrument each stage
Первый полезный шаг — добавить per-stage timestamps и counters. Записывайте, когда event создан, accepted, queued, started, completed, rejected или discarded. Queue depth, service time, delivery freshness и rejection reasons превращают intuition о congestion в traceable hypothesis.
Разделяйте capacity и visibility
Downstream stage может быть saturated, даже если её queue визуально не растёт — например, upstream уже делает shedding. И наоборот, queue может расти из-за slow consumer при normal source. Replay и cross-stage identifiers помогают различить эти случаи.
Не скрывайте boundary
Увеличение queue size может быть правильным, но это не diagnosis. Большой buffer может заменить видимые drops скрытой latency и усложнить recovery. Устойчивый lesson — сначала сделать freshness и backpressure first-class evidence, а уже затем менять capacity.