Backpressure на собеседовании системного аналитика

Готовься к собесу аналитика как в Duolingo
10 минут в день — SQL, Python, A/B, метрики. 1700+ вопросов в Telegram
Открыть Карьерник в Telegram

Карьерник — Duolingo для аналитиков: 10 минут в день тренируй SQL, Python, A/B, статистику, метрики и ещё 3 темы собеса. 1500+ вопросов в Telegram-боте. Бесплатно.

Что такое backpressure

Mechanism — slow consumer signals upstream «slow down».

Producer adapts → matches consumer speed.

Без backpressure

Fast producer → 10000/sec → slow consumer (100/sec).
Queue grows unbounded → OOM.

Or:

No queue, dropped messages → data loss.

Strategies

Buffer. Bounded queue. Backpressure when full.

Drop. Old / new / random messages dropped.

Pause producer. Block until queue drains.

Throttle. Producer rate limited.

Sample. Process subset, ignore rest.

Spillover. Disk overflow temporary.

Choice depends — data criticality, latency tolerance.

Готовься к собесу аналитика как в Duolingo
10 минут в день — SQL, Python, A/B, метрики. 1700+ вопросов в Telegram
Открыть Карьерник в Telegram

Reactive streams

Standard для async backpressure.

Spec. Subscriber requests N items от producer. Producer sends ≤ N. Continue subscription.

Implementations:

  • Project Reactor (Java).
  • RxJava / RxJS.
  • Akka Streams.
  • Kotlin Flow.
flow.buffer(100)         // bounded buffer
    .conflate()            // drop intermediate, keep latest
    .collect { ... }       // consumer

Связанные темы

FAQ

Это официальная информация?

Нет. Статья основана на Reactive Streams spec.


Тренируйте системный анализ — откройте тренажёр с 1500+ вопросами для собесов.