Veja a documentação do ZeroMQs, especialmente o guia . Eu acho que você gostaria de algo nos moldes da Figura 19 - Extended Request-reply. se não, há muita documentação lá que deve dar o que você precisa em alguma combinação.
Não tenho certeza do que você quer dizer no ponto 3, mas o restante parece precisar de uma arquitetura de passagem de mensagem desconectada - você dispara mensagens na rede e, se um BC estiver ativo e em escuta, ele receberá a mensagem para processar.
Se você precisar enviar uma mensagem a um BC que esteja inativo, precisará de um corretor que os leia e aguarde o início do BC, com o qual eles serão enviados - entretanto, isso significa que o corretor precisa saber sobre os BCs, a fim de saber se deve armazenar mensagens para um.