Вот случай из моей практики:

Нужно было составить требования на интеграцию двух сервисов — user и kyc через Kafka. KYC должен был реагировать на события от юзер-сервиса: создание пользователя, изменение данных и т.д. Я описала базовые вещи: события, поля, когда и что отправляем. Но упустила один момент: не зафиксировала, каким должен быть ключ у сообщений. Разработчики сделали по-своему: ключ - uuid события. А в KYC был stateful-консюмер, который ожидал события в порядке по user_id. Результат: • часть событий пришла “задом наперёд” • верификация запускалась раньше, чем прилетал профиль • приходилось вводить задержки и костыли Схема была, ТЗ было, а логика не сработала. Просто потому, что маленькая деталь не была явно описана в требованиях. Теперь я всегда пишу: 🔸 “ключ события - {параметр}_id, для сохранения порядка обработки”.