Всякий ли Flow холодный?Нет: это общий интерфейс. flow-builder холодный, StateFlow и SharedFlow горячие. Горячесть не обещает бесконечную генерацию значений без подписчиков. SharedFlow.
Почему счётчик StateFlow не сохраняет все переходы?Он представляет текущее состояние. Быстрые изменения могут схлопнуться для медленного подписчика; равные значения подавляются. Для журнала нужна другая модель хранения. StateFlow.
Спасёт ли extraBufferCapacity событие до подписки?Нет. Пока подписчиков нет, сохраняется лишь replay; дополнительный буфер не является очередью для будущего слушателя. SharedFlow.
tryEmit вернул true. Значит ли это, что событие обработано?Нет. Для SharedFlow без replay и без подписчиков он может вернуть true и потерять значение. Даже получение подписчиком не подтверждает завершение бизнес-операции. SharedFlow.
Можно ли послать аналитику внутри StateFlow.update?Не стоит: лямбда может повториться при конкурентном обновлении. Сначала вычислите новое состояние чистой функцией, а эффект выполняйте по отдельному протоколу. update.
Почему старый запрос живёт ещё 300 мс после ввода?Если debounce стоит перед flatMapLatest, новый query ещё не дошёл до latest. Для немедленной отмены обработайте исходный ввод latest-оператором, а delay поместите внутрь. transformLatest.