Изучение

Наблюдаемые данные и жизненный цикл

Доставка с повтором последнего значения, порядок событий, ошибки, закрытие и владение ресурсами.

v1.1.0Продвинутый уровеньark_data_layer

Наблюдаемые данные и жизненный цикл

data синхронно возвращает последнее зафиксированное значение. stream — широковещательный Stream с повтором последнего значения: новый слушатель сначала получает текущее значение, а затем последующие фиксации.

Порядок

Публикация асинхронна. Значения ставятся в очередь в порядке принятия, а обратный вызов никогда не выполняется в стеке вызова setData. Фиксация данных из слушателя не приводит к его рекурсивному повторному входу.

Состояние, а не журнал событий

Stream представляет актуальные бизнес-данные. Он не является долговечным журналом и не гарантирует однократную доставку. Для истории событий нужен транзакционный Outbox, Event Store или другой устойчивый механизм.

Закрытие

close() идемпотентен: запрещает новые фиксации, вызывает closeRepository(), завершает текущие подписки и оставляет последнее значение доступным через data. Repository не закрывает общие DataSource только потому, что они находятся в его контейнере.

Порядок завершения: binding → UseCase и прикладные сервисы → Repository → DataSource и технические клиенты.