Как кто-то уже сказал, то, что вы описываете, в основном является моделью издателя / подписки. Это очень легко достигается с помощью ESB или очереди сообщений. У меня был некоторый опыт работы с RabbitMQ. Это очень хорошо. Ничто не теряется, и это очень хорошо работает с моделью подписки на публикацию. В прошлом я шел по пути на небольших системах разработки собственного брокера сообщений с заказным протоколом через http. Я бы не советовал этого, потому что, когда вы начинаете его развивать, вы продолжаете думать о том, как его расширить.
RabbitMQ разработан в Erlang, но у него есть клиенты java, net, python и т. Д., Которые могут подключиться к нему очень легко. Я использовал клиенты .net и python, это хорошо работает. Я выбрал его для репутации Эрланга за создание надежных систем, которые могут очень хорошо справляться с множеством вещей одновременно. Я бы назвал их потоками, но я думаю, что это умнее, чем просто потоки, я помню, как бормотали модель актера и почтовые ящики, которые, как я помню, были довольно аккуратными.
Я был в том же положении, что и вы, но с очень плохим опытом других систем обмена сообщениями (Biztalk и др.), Которые были слишком приличными, что связывало вас с решением. Если вы можете хранить сообщения отдельно от механизмов транспортировки и доставки, то вы можете развить свою систему до своего сердца. В конце концов, я использовал JSON, так как размеры пакетов невелики. Вы можете использовать все, что захотите, некоторые выбирают SOAP-сообщения, но я чувствую, что они слишком тяжелы для большинства вещей, хотя это позволяет вам приятно отдавать XSD-схемы посторонним, чтобы они могли / могли разрабатывать системы, которые взаимодействуют с вашими Система в будущем.
http://www.rabbitmq.com/tutorials/tutorial-three-java.html, это ссылка на учебник по модели публикации / подписки и того, как вы этого добьетесь, используя систему очереди сообщений. Это для rabbitMQ, но, честно говоря, он будет работать с ESB и любой другой системой очереди сообщений.