Мне недавно пришлось внедрить такую же систему, и я использовал RabbitMQ для брокера обмена сообщениями и использовал плагин RabbitMQ *1004* для Grails для взаимодействия с ним.
Я выбрал RabbitMQ, потому что он имел нужные функции (масштаб, скорость, надежность) и был построен на стандарте AMQP, что означало, что мои производители и потребители могли писать на любом нужном мне языке, не беспокоясь.
Grails отлично работает как для производителя, так и для потребителя, и имеет то преимущество, что все еще может работать с полным доменом GORM вашего приложения.
Для масштабирования, либо производителя , либо потребительского конца очереди, все, что мне нужно сделать, - это увеличить количество экземпляров grails и отрегулировать количество потоков потребителей, чтобы оно работало действительно хорошо.