Аргументы ваших коллег не безосновательны. Добавление ActiveMQ в проект добавляет еще одну зависимость. Вероятно, его будет сложнее использовать, и он будет занимать больше места, чем пользовательское решение. Кроме того, поскольку вы принимаете его, он, вероятно, станет вашей обязанностью поддерживать и поддерживать бесперебойную работу - ошибки и все.
При этом ActiveMQ (и другие очереди) будут делать то, что вы могли бы написать сами, но это может оказаться проблемой. Одной из них является поддержка всего API-интерфейса JMS (хотя я предполагаю, что вы используете Java ... если нет, то этот пункт недействителен). Сериализация избыточных сообщений на диск в ситуациях с большим объемом памяти - это другое. Надежные подписчики и селекторы сообщений - это еще несколько вещей, которые приходят на ум. Кажется, что это в основном вещи для ваших нужд, но они становятся очень важными для надежной доставки сообщений.
Что бы вы ни решили, инкапсулируйте окончательный выбор посредника сообщений в стороне от клиентского кода, чтобы его было легче переключать.