Удаляет ли Latest стратегия старые значения в механизме backpressure

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

Ответ

Latest стратегия в механизме backpressure не удаляет старые значения явно. Вместо этого она отбрасывает все предыдущие необработанные элементы при поступлении нового, сохраняя только последний (latest) элемент.

Пример с Kotlin Flow:

flow {
    emit(1)
    emit(2)
    emit(3)
}.buffer(capacity = 0, onBufferOverflow = BufferOverflow.DROP_LATEST)
.collect { value -> println(value) }

Ключевые моменты:

  1. Не хранит всю историю (как Buffer)
  2. При переполнении оставляет только последний элемент
  3. Промежуточные значения между обработками теряются
  4. Подходит для случаев, когда важна актуальность, а не полнота данных