В каких случаях лучше использовать брокер сообщений для взаимодействия между сервисами

golangархитектураброкеры сообщенийвзаимодействие сервисовпроектирование систем