Рецепты

События, ошибки и жизненный цикл Entry

Диагностика, централизованные ошибки и ресурсы Entry без распространения конкретного Controller по функциональному коду.

v0.1.0-dev.2Продвинутый уровеньark_navigation

События, ошибки и жизненный цикл Entry

Записать прохождение policy pipeline

Реализуйте NavigationEventSink и передайте его в Session. События различают запрос, Redirect, Guard rejection, Commit Snapshot и непредвиденную ошибку. Сохраняйте ограниченные идентификаторы и причины; не сериализуйте произвольные поля Destination без политики данных.

Централизовать непредвиденные ошибки

NavigationFailureSink получает error, stack trace, request ID и operation. Подключите его на корне композиции к Ark Error Manager, Sentry или существующей системе. Ожидаемый Guard denial остаётся результатом и не отправляется как сбой.

Владеть ресурсом конкретного Entry

Реализуйте NavigationLifecycleObserver:

  • didEnter создаёт Scope или ресурс Entry;
  • didReconfigure обновляет привязки при сохранении идентичности;
  • didExit закрывает ресурс после Pop, удаления, миграции или shutdown Session.

Используйте ключ NavigationEntryId, а не NavigationRouteId: один Route может присутствовать в стеке несколько раз.

Сохранить узкие зависимости

Page и прикладные сервисы вызывают переходы через NavigationPort. Интеграции Lifecycle и диагностики получают объекты уровня Session на корне композиции, но не заставляют все функциональные части зависеть от NavigationController.

ARKTELOS

Инженерные системы для программного обеспечения, которое обязано выдерживать нагрузку.