Un enterprise service bus composto da più server fornisce i vantaggi della scalabilità, la possibilità di gestire più connessioni client ed una maggiore velocità di trasmissione dei messaggi. È anche possibile distribuire moduli SCA a server differenti; ad esempio, per fornire risorse e QoS (Quality of Service - qualità di servizio) differenti oppure per fornire una certa separazione per i vari dipartimenti all'interno delle organizzazioni oppure per separare le funzioni di verifica e di produzione.
Per creare più di un server nell'ambiente bus, occorre disporre di un nodo gestito nella cella di Deployment Manager.
L'utente esegue la configurazione di ciascun server per il runtime SCA richiesto dai moduli di mediazione. Questa configurazione avanzata definisce se le destinazioni di coda utilizzate dal runtime SCA sono ospitate localmente sul server oppure su un server remoto. Se si specifica che il server deve ospitare le destinazioni di coda, il server viene fatto membro del bus SCA.SYSTEM e ottiene un motore di messaggistica a cui sono assegnate le destinazioni di coda. Se si specifica che il server non ospita destinazioni di coda, esso non deve essere un membro del bus SCA.SYSTEM e non ha quindi bisogno di un motore di messaggistica.
Considerare lo scenario illustrato nella Figura 1.
Tutti i motori di messaggistica nel bus SCA.SYSTEM sono implicitamente connessi e le richieste possono essere elaborate da qualsiasi motore di messaggistica nel bus. La conoscenza delle risorse assegnate a ciascun motore di messaggistica in un bus è condivisa tra tutti i motori di messaggistica presenti nel bus.
Non vi è alcuna necessità per cui tutti i motori di messaggistica debbano essere in esecuzione contemporaneamente; se uno dei motori di messaggistica viene arrestato, gli altri motori di messaggistica continuano a funzionare. Tuttavia, le risorse di proprietà di un motore di messaggistica, in particolare i punti coda per i moduli di destinazione, non sono disponibili se il motore viene arrestato. Inoltre, un motore di messaggistica può essere eseguito solo nel server per cui è stato creato. Il server rappresenta quindi un singolo punto di errore; se non può essere eseguito, il motore di messaggistica risulta non disponibile. Configurando un cluster di server come un membro di bus, un motore di messaggistica può essere eseguito in un server nel cluster e, se si verifica un malfunzionamento di detto server, il motore di messaggistica può essere eseguito in un server alternativo nel cluster.
Esistono vari modi per creare un enterprise service bus: