Nella nostra architettura interna, abbiamo diversi server Tomcat che distribuiscono il carico di lavoro e isolano i diversi processi della nostra attività. Stiamo pianificando di passare a un approccio in cui diverse attività (principalmente correlate a BD) saranno gestite da un endpoint Tomcat (bilanciato per disponibilità e prestazioni), ma siamo turbati nel determinare quale potrebbe essere il metodo di migliore pratica per la comunicazione interna tra le diverse app Web eseguite nei diversi server Tomcat. Abbiamo già utilizzato HornetQ, MQTT (basato su Mosquitto) e HTTP per diversi aspetti, ma considerando che questo endpoint pianificato dovrebbe esporre internamente un'API agli altri server.
L'obiettivo principale di questo cambiamento di architettura è di evitare problemi legati al fatto di avere diversi software che eseguono lavori simili, ma con regole e algoritmi diversi, portando così a errori di codifica e comportamenti non uniformi all'interno del sistema per un entità singola.
Che cosa dovrebbe essere considerato? Quale comunicazione inter-processo sarebbe effettivamente raccomandata? Qualche tipo di ESB, forse?