Backpressure на собеседовании системного аналитика
Карьерник — 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.
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Связанные темы
- Capacity planning для SA
- Circuit Breaker для SA
- Bulkhead pattern для SA
- Rate limiting для SA
- Подготовка к собесу системного аналитика
FAQ
Это официальная информация?
Нет. Статья основана на Reactive Streams spec.
Тренируйте системный анализ — откройте тренажёр с 1500+ вопросами для собесов.