Недавно я изучал NServiceBus, так как думал, что обмен сообщениями будет хорошим способом уменьшить зависимости между системами. Однако первое, что меня поразило, это то, что издатель сообщения и все подписчики должны совместно использовать DLL определения сообщения. Что произойдет в этом сценарии?:
Скажем, есть одна центральная система, которая обрабатывает данные клиентов. Всякий раз, когда запись клиента изменяется, она публикует сообщение, содержащее имя и адрес. У него десять подписчиков, которые обновляют свою локальную копию данных при получении сообщения.
Однажды требования меняются, и одному из абонентов также нужен номер телефона клиента. Сообщение, издатель и затронутый подписчик обновляются для обработки номера телефона, перекомпилируются и освобождаются.
Останутся ли все остальные девять подписчиков в силе? Будут ли они работать как обычно со старой библиотекой Message DLL, или все они должны быть обновлены новой библиотекой DLL, перекомпилированы и выпущены?