9. Избегайте использования событий в качестве семафоров или сигналов
Избегайте использования событий в качестве семафора или сигнала. Эти события просто указывают на то, что что-то произошло, но не являются единственным источником достоверности результатов.
Рассмотрим очень простой пример, когда система выдает событие, указывающее на завершение работы для произвольного задания. Хотя само событие указывает на выполнение работы, но фактический результат работы не включается в событие. Это означает, что для правильного использования этого события вы должны найти, где на самом деле находится завершенная работа.
К примеру, в сообщении есть информация только о том, что "задача завершилась", но нет информации о деталяъ. Потребителю придется обратиться в Producer и выяснять детали:
- "просто завершилась или с ошибками, если да, то с какими"?
- "в какое время?" (возможно потребитель на основе времени принимает решение о выплате бонуса)