MinIO bucket notifications¶
Требования применяются к production-доставке MinIO bucket notifications,
потеря или задержка которых нарушает обязательный бизнес-результат. Прикладная
гарантия и восстановление определяются architecture:INT-HOOK-006–INT-HOOK-007.
Уровни обязательности определены в корневом README.md.
INF-DAT-017. Версионированная конфигурация доставки¶
Уровень: MUST
Применяется к: production MinIO bucket notification в области
architecture:INT-HOOK-006
Управляемая конфигурация и операционный README должны фиксировать точный продукт или дистрибуцию MinIO, release, режим синхронной или асинхронной доставки, успешный HTTP-результат, timeout, число и интервалы повторов, предел очереди, её storage, сохранение при restart и поведение при переполнении.
Отсутствующая, неподдерживаемая или deprecated возможность должна быть указана явно вместе с наблюдаемым результатом отказа. Имя параметра одной версии не должно переноситься на другую версию без проверки её документации и фактической конфигурации.
Обоснование¶
Название MinIO и наличие retry не определяют гарантию доставки конкретного release и режима.
Проверка¶
- запрос версии и фактической конфигурации target;
- сопоставление каждого свойства с документацией зафиксированного release;
- отказ target и restart MinIO с проверкой очереди и повторной доставки.
Исключения¶
Не допускаются для незафиксированной версии или неописанного поведения переполнения.
INF-DAT-018. Ёмкость и влияние отказа¶
Уровень: MUST
Применяется к: очереди production MinIO bucket notifications в области
architecture:INT-HOOK-006
Предел очереди должен иметь численный расчёт как минимум по измеренной пиковой
скорости событий, максимальному времени недоступности target, скорости
опустошения backlog после восстановления и доступному storage. Достижение
предела должно иметь заранее определённый результат; если оно допускает потерю,
проект должен выполнять architecture:INT-HOOK-007.
Для синхронного режима должны быть измерены результат S3-операции и её задержка
при недоступном target, заполнении очереди и восстановлении доставки. Для
асинхронного режима наличие retry или конечной очереди не должно считаться
доказательством at-least-once.
Обоснование¶
Конечная очередь переносит отказ target во время, но не исключает потерю или влияние на доступность S3.
Проверка¶
- нагрузочный тест пиковой скорости и расчётного окна недоступности;
- заполнение и опустошение очереди с проверкой storage и потерянных событий;
- для синхронного режима — измерение результата и задержки S3-записи при отказе target.
Исключения¶
Не допускаются для непроверенного результата переполнения.
INF-DAT-019. Обнаружение задержки и потери¶
Уровень: MUST
Применяется к: production MinIO bucket notifications в области
architecture:INT-HOOK-006
Платформа должна предоставлять сигналы, которые однозначно связываются с target и экземпляром или кластером MinIO и позволяют определить размер или заполнение очереди, неуспешную доставку, отброшенные или пропущенные события и возобновление доставки после отказа. Отсутствие ожидаемого сигнала не должно считаться нулевым числом ошибок.
Alert должен срабатывать до нарушения максимального возраста доставки или
переполнения очереди и иметь численный порог, окно, владельца и runbook.
Контролируемая потеря события должна обнаруживаться reconciliation-процедурой
по architecture:INT-HOOK-007 в пределах её максимального интервала.
Обоснование¶
Недоступный target или переполненная очередь могут не изменить успешный результат асинхронной S3-операции.
Проверка¶
- отключение target, restart MinIO и контролируемое переполнение очереди;
- проверка каждого сигнала, alert и ссылки на runbook;
- пропуск одного события и измерение времени его обнаружения reconciliation.
Исключения¶
Отсутствующий native-сигнал MAY заменяться синтетической проверкой или сигналом расхождения reconciliation, если замена обнаруживает тот же отказ до установленного предела.