можно послать сообщение, роутинг на клиенте (то есть сначала мы узнаем кто сообщение будет обрабатывать и для каждого ресипиента отправляем в кролика отдельный энвелоп с ресипиентом, это существенно упрощает все на свете). Буферизация сообщения до окончания работы обработчика. Саги собственно, таймауты для саг, ретраи с бэкофом (пока таймауты захардкожены но есть возможность для отдельных ресипиентов выставлять свои ретрай полиси), dead letter для "совсем не вышло"...
О мне тоже все самому пришлось писать
У себя еще перепроигрывание сообщений добавил
Мапинг сделал чтобы из вне принимать и внутри уже перводить во внутрение собщения с известными структурками и обработчиками (ну тоесть из одного внешнего создается сообщений по количеству внутрених обработчиков)
Добавил возможность отправлять через корутины асинхронно
ибо когда надо запулить пару миллионов синхронно очень долго да и массивами кидатся такое себе (люди не знают что оно там асинхронно внутри котрые используют)