Какие знаешь стратегии у backpressure

«Какие знаешь стратегии у backpressure» — вопрос из категории Реактивное программирование, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Backpressure в RxJava/Flow решается несколькими стратегиями:

  1. BUFFER - накапливает элементы при перегрузке (может привести к OOM)
Flowable.range(1, 1_000_000)
    .onBackpressureBuffer()
  1. DROP - отбрасывает новые элементы при перегрузке
Flowable.range(1, 1_000_000)
    .onBackpressureDrop()
  1. LATEST - сохраняет только последний элемент
Flowable.range(1, 1_000_000)
    .onBackpressureLatest()
  1. ERROR - выбрасывает MissingBackpressureException
Flowable.range(1, 1_000_000)
    .onBackpressureError()

В Kotlin Flow используется buffer(), conflate(), collectLatest с аналогичной логикой. Выбор стратегии зависит от требований к данным и скорости обработки.