Il publisher è esterno al pattern, per cui per mia esperienza, se ci rifacciamo alle java.util di cui accennavi il Subject estende Observable e gli Observer (coloro che si sottoscrivono e ricevono le notifiche) implementano "Observer". Il publisher non è altro che una classe che si occupa di modificare i dati in Subject e poi lanciare il processo di notifica (setChanged()/notifyObservers()).

Però non ho capito se il tuo message bus è a livello di rete, oppure un bus solo logico all'interno della tua applicazione.