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

Проверь себя · 1/3разбор после ответа
В таблице sessions 5 строк. Значения utm_source: 'google', NULL, 'email', NULL, NULL. Чему равны COUNT(*) и COUNT(utm_source)?

Что такое 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+ вопросами для собесов.