Вы можете добиться некоторой надежности с вашим монолитным приложением Grails, запустив его за балансировщиком сетевой нагрузки. Это позволит вам выполнять непрерывные обновления без простоев.
Теперь это не решает другие проблемы, такие как необходимость иметь дело с, возможно, недоступными удаленными сервисами SOAP и т. Д. ... Это когда инструмент / инфраструктура, такая как Mule, может помочь, поскольку она предоставит вам обработку исключений, повторяет попытки и еще много чего.
Это обусловлено предполагаемым поведением вашего моста SOAP: является ли он асинхронным (т. Е. Запускает и забывает, отправляет сообщение на мост, получает немедленный ACK и позволяет мосту выполнять удаленную диспетчеризацию, когда это возможно) или это так? синхронный (т. е. вызывающий мост удерживается до тех пор, пока удаленный ответ не будет получен и переадресован обратно на него).
Если ваш мост в основном синхронный, я бы сказал, что вы можете придерживаться своего единственного приложения Grails и использовать балансировщик нагрузки. Вызывающий будет иметь дело с повторными попытками.
В противном случае, если он асинхронный, рассмотрите промежуточное программное обеспечение для обмена сообщениями, чтобы помочь с сохранением и повторной доставкой временного сообщения в случае сбоя.