Определяет очереди, провайдеров, повторные попытки, дедупликацию, отслеживание, наблюдаемость, резервные варианты и обработку сбоев для повторных попыток доставки. Устанавливает границы принятия и наблюдаемые признаки сбоев, при этом сохраняя возможность настройки ограничений, специфичных для среды.
Статус пакета: справочный контекст готов для проверки человеком. Контракт и тестовые сценарии завершены, но не заявляется, что внедряющая реализация их прошла.
Решение
Для повторных попыток доставки принять долговременное намерение уведомления, идентифицируемое независимо от попыток провайдера. Управлять возможностью с помощью именованных сигналов, ограниченной емкости, собственных оповещений, диагностического руководства и проверенных доказательств восстановления. Этот пакет является справочным контрактом: внедряющая команда должна выбрать числовые лимиты, провайдеров, юрисдикции и операционных владельцев на основе данных из своей среды.
Область применения
- Акторы, входы, выходы, состояния, версии политики или схемы и внешне видимые результаты повторных попыток доставки, описанные этим блоком операций.
- Основные и альтернативные интерфейсы, фоновые задачи, кэши, интеграции, пути поддержки и доказательства, которые могут задействовать ту же границу.
- Конфигурация, развертывание, восстановление и обязанности по проверке, специфичные для внедрения, необходимые для безопасного применения справочного материала.
Вне этого блока
- Выбор универсального поставщика, фреймворка, юрисдикции, числового порога, периода хранения или целевого уровня обслуживания для каждого внедряющего.
- Утверждение, что упакованные сценарии были выполнены на нижестоящей реализации или что этот справочник предоставляет юридическую, безопасность или сертификацию доступности.
Контракт
- Создать одно намерение уведомления с получателем, целью, версией шаблона, локалью, расписанием, чувствительностью и идентичностью дедупликации.
- Применять проверенное состояние получателя, предпочтения каналов, часы тишины и юридические или продуктовые подавления непосредственно перед отправкой.
- Отслеживать состояния: в очереди, попытка, принято, доставлено (где наблюдаемо), неудача, подавлено и отменено как отдельные состояния.
- Ограничивать повторные попытки по провайдеру и сохранять ту же идентичность намерения, чтобы резервный канал не мог создавать дублирующие действия пользователя.
- Определять нормальные, деградированные, исчерпанные и недоступные состояния с метриками принятия решений и явными действиями оператора.
- Сохранять идентичность принятой работы при переключении, повторном воспроизведении, откате и ремонте, чтобы восстановление не могло дублировать или тихо терять эффекты.
- Разделять одно долговременное намерение уведомления и попытки провайдера, классифицируя валидацию, постоянный отказ, временный сбой, ограничение, тайм-аут и неоднозначное принятие.
- Повторять попытки только для безопасных классов с экспоненциальным откатом, джиттером, ограничениями по попыткам и возрасту, стабильной дедупликацией, сверкой с провайдером и проверяемым конечным состоянием.
Руководство по реализации
- Практиковать руководство в представительной среде и фиксировать время восстановления, границу потери данных и нерешённые предположения.
- Моделировать входы, выходы, акторов, состояния, инварианты, побочные эффекты и доказательства повторных попыток доставки перед выбором фреймворка или поставщика.
- Хранить применимую версию контракта или политики повторных попыток доставки вместе с материальным состоянием, чтобы миграции, воспроизведение и решения поддержки оставались атрибутируемыми.
- Вводить путь за контролируемым развертыванием, сравнивать ожидаемые и наблюдаемые результаты и сохранять проверенный маршрут восстановления до завершения сбора доказательств внедрения.
Обработка сбоев и меры безопасности
- Постоянные сбои адреса или политики подавляют дальнейшие попытки; временные сбои используют ограниченные повторные попытки, а затем состояние с конечным результатом, видимое оператору.
- Недопустимое или противоречивое состояние повторных попыток доставки отклоняется или помещается в карантин; реализация никогда не угадывает значение, расширяющее полномочия или дублирующее эффект.
- Повторные попытки ограничены и используют долговременную идентичность; после исчерпания работа достигает проверяемого конечного состояния с ответственным владельцем.
Проверка и операции
- Внедрять насыщение, сбой зависимости, устаревшую конфигурацию и потерю телеметрии, подтверждая заявленное деградированное поведение.
- Мониторить успех, отказ, ошибку валидации, сбой зависимости, исчерпание повторных попыток и восстановление по версии контракта без чувствительных параметров полезной нагрузки.
- Повторно запускать парные позитивные и негативные фикстуры после изменений политики, схемы, зависимости, миграции или границ и сохранять полученные доказательства.
Предположения внедрения
- Имена и значения в примере — конкретная фикстура, а не универсальные значения по умолчанию; внедряющие заменяют их на основе документированных данных и владения.
- Внедряющая система может предоставить аутентифицированную идентичность, долговременные версии операций или записей, ограниченную телеметрию и контролируемый путь для изменений.
Исполняемые на вид примеры в этом пакете являются фикстурами и контрактами приемки. Запустите валидатор коллекции для проверки структуры и метаданных, затем переведите и выполните сценарии в целевом репозитории перед фиксацией доказательств реализации.