Исполняемый сценарий проверки · P49-C05

Почтовые события: ключ операции и конфликт повторного payload

Одинаковое событие не выполняется дважды; измененное вложение с прежним ID дает конфликт, а новая версия — отдельную операцию.

Задача и принятое решение

Повтор события E14 и исправленное письмо выглядят похоже, но требуют разных решений. Слияние по теме теряет редакцию, обработка каждого доставки создает дубликаты.

Я связал ключ события с неизменяемой парой message ID и версии вложения. Повтор возвращает сохраненный исход. При другом payload под прежним ключом обработка останавливается; E15 получает собственную запись.

Почта никуда не отправляется. Проверяется обработчик событий на открытом наборе и сохраненные решения в памяти.

Проверить решение

Измените исходные строки или параметры и пересчитайте результат. Данные остаются в этой странице.

2Выполнений
1Конфликтов
СобытиеПисьмоВерсияРешение
E14M7v1Выполнено
E14M7v1Сохраненный результат
E14M7v2Конфликт payload
E15M7v2Выполнено

Исходный набор

Авторский набор событий и полные тексты. Все решения выполняются локальным кодом, внешняя модель не вызывается.

Изменить входные строки
Посмотреть исходные строки
СобытиеПисьмоВерсия
E14M7v1
E14M7v1
E14M7v2
E15M7v2

Что получилось

E14/v1 выполнен один раз, одинаковый повтор вернул сохраненный исход. E14/v2 остановлен как конфликт содержимого, E15/v2 выполнен отдельно. Фокус проверки — ключ события и версия вложения; транспортная потеря ответа не моделируется.

Выполненная проверка

ПроверкаРезультат
Два выполнения, один повтор и один конфликт содержимогоПройдена
Третий одинаковый eventId не запускает обработку повторноПройдена
Новый message ID под прежним событием отклоняетсяПройдена

Стенд проверяет ключ и payload последовательно. Распределенное исполнение, SMTP и внешний exactly-once здесь не имитируются.

Скачать материалы и повторить проверку

source.json · source.csv · result.json · result.csv · engine.js · verify.cjs · checks.json · style.css

Локальная проверка: node verify.cjs. Нужен Node.js; сетевые обращения не выполняются.