🧠 «Будем отправлять события в Rabbit!» — фраза, с которой всё начинается… и всё рушится 😅
Слишком часто в проектах путают события, сообщения и транспорт. В итоге появляются боли, магия и код, в котором невозможно разобраться. А потом слышим:
Symfony Messenger? Фу, я на нём проект писал — не взлетел!
А дело-то не в Messenger'е, а в архитектурных решениях.
🔥 В статье, на которую обязательно стоит потратить время:
🔸 разбор, что такое событие в приложении (и почему это не сообщение);
🔸 почему Symfony EventDispatcher нельзя тащить в домен;
🔸 как выглядит простой, но правильный
DomainEventPublisher;🔸 когда события превращаются в сообщения — и почему транспорт (Rabbit/Kafka/etc) должен подбираться последним, а не первым;
🔸 и почему «всё в одном классе» — верный путь в дебаг ад.
📌 Отдельная тема - как событие из домена превращается в сообщение и уходит в Rabbit через Symfony Messenger.
Да, Messenger — это не центр вселенной, а всего лишь инструмент доставки. И это важно понимать.
👉 Хабр
💬 А ты как реализуешь события в своих проектах? Используешь ли отдельный dispatcher для домена?
