на одном из проектов использовали подход когда сообщения не сразу слали в Rabbit, а предварительно сообщения писались в БД, а от туда уже вычитывались и отправлялись в Rabbit.
Плюсы решения будет:
- возможность "отправки" сообщения обернуть в транзакию, тем самым сделав гарантию отправки в Rabbit. Не будет ложных или потерянных сообщений в rabbit'е
- отправка происходит ассинхронно, проще масштабировать, уходит проблем коннекта на каждый запрос
Минусы:
- доп задержка перед попаданием сообщения в rabbit