Como integrar Centros de Distribuição usando Multi-Instância
Aprenda como o Multi-Instância permite que um único pipeline processe mensagens de vários Centros de Distribuição com configurações de fila independentes.
Visão geral
Este artigo mostra como usar o recurso de Multi-Instância da Digibee Integration Platform para resolver um cenário em que o sistema central de uma empresa de varejo precisa consumir informações de estoque de vários Centros de Distribuição, cada um com sua própria fila de mensageria.
Cenário

Imagine uma rede de varejo na qual os Centros de Distribuição (CDs) publicam atualizações de estoque em um broker RabbitMQ, que posteriormente envia essas informações ao ERP (Planejamento de Recursos Empresariais).
Normalmente, bastaria um pipeline com um trigger RabbitMQ apontando para o broker. Porém, se cada CD tiver uma fila ou até mesmo um host diferente, o trigger não poderá consumir mensagens de múltiplas origens.
O recurso Multi-Instância resolve esse desafio ao permitir que você:
Mantenha um único pipeline com a mesma lógica de processamento.
Implante instâncias dedicadas para cada CD, com parâmetros específicos (host, porta, fila, entre outros).
Dessa forma, o processamento permanece padronizado, enquanto as configurações variam conforme a necessidade.
A lógica do pipeline deve ser idêntica entre as instâncias. É uma boa prática manter as mesmas etapas em todas elas, evitando tratamentos condicionais baseados na instância.
Arquitetura

Cada Centro de Distribuição (CD1, CD2 e CD3) envia atualizações de estoque por meio do RabbitMQ (AMQP).
Na Digibee, um pipeline Multi-Instância configurado com tamanho small, 10 consumidores e 1 réplica coleta as mensagens, processa as informações e as envia para o ERP, onde são armazenadas em um banco de dados SQL.
Essa arquitetura garante centralização, automação e escalabilidade no controle de estoque.
Colocando a teoria em prática
Para construir a solução apresentada acima, siga as etapas abaixo.
Crie o modelo Multi-Instância
Na página inicial da Plataforma, clique no ícone de Configurações no canto superior direito, acesse o menu Multi-Instância e clique em Criar.
Preencha os campos:
Nome:
warehouse-stock-queueDescrição: Insira um texto explicando o uso deste modelo, por exemplo: “Modelo Multi-Instância para consumir filas independentes de brokers RabbitMQ, com uma instância dedicada para cada centro de distribuição”.
Campos: Adicione os seguintes campos, pressionando Enter entre cada um:
warehouse-cd: Código do centro de distribuição.host: IP do servidor RabbitMQ do CD.port: Porta do servidor RabbitMQ.virtual-host: Host virtual do RabbitMQ.queue: Fila RabbitMQ com as mensagens do CD.
Clique em Salvar para criar o modelo.

Cadastre as instâncias e preencha os dados
Com o modelo criado, clique em Configurar Multi-Instância (segundo ícone na coluna de Ações da tabela de modelos Multi-Instância) e depois em Criar.
Cadastre as instâncias correspondentes às filas de cada CD (cd1, cd2 e cd3):
Preencha o campo Nome.
Preencha os demais parâmetros —
port,host,virtual-host,warehouse-cdequeue— conforme a configuração de cada ambiente.
Clique em Salvar.
Repita o processo para cada CD.

Para cada CD, há uma instância configurada conforme sua respectiva fila RabbitMQ, tanto para teste quanto para produção.
Vincule o modelo Multi-Instância ao pipeline
Com a Multi-Instância criada e configurada, o próximo passo é vinculá-la ao pipeline que utilizará esses dados.
Para fazer o vínculo:
Acesse o pipeline desejado.
Abra o menu de Configurações.
Marque a opção É Multi-Instância.
Selecione o modelo
warehouse-stock-queue.

Após definir o pipeline como Multi-Instância, não é possível reverter essa configuração. Por outro lado, qualquer pipeline, implantado ou não, pode ser transformado em Multi-Instância.
Referencie os campos da Multi-Instância
Conforme descrito na documentação sobre criação de pipelines Multi-Instância, para referenciar o valor de um campo configurado em uma instância, use a notação:
No exemplo deste documento, esses campos são usados no trigger RabbitMQ da seguinte forma:
Hostname:
{{replica.host}}Port:
{{replica.port}}The RabbitMQ Queue To Consume Messages From:
{{replica.queue}}

Assim, ao implantar o pipeline para uma instância (cd1, cd2 ou cd3), o trigger assume automaticamente os valores configurados.
Os campos da Multi-Instância também podem ser usados em outros conectores.
Exemplo com o JSON Generator:
Teste o pipeline Multi-Instância
Para testar o pipeline, vá até o Painel de Execução. Antes de iniciar o teste, selecione a instância desejada no campo Multi-Instância e clique em Executar para visualizar o resultado daquela instância.

Implante as instâncias do pipeline
A implantação de um pipeline Multi-Instância é feita por instância. Embora o pipeline seja único, cada instância é implantada de forma independente (cd1, cd2, cd3).
Durante a implantação, selecione a instância desejada no campo Instância do formulário.

Assim, é possível escalar conforme a demanda de cada CD.
Por exemplo, se o CD3 tiver maior volume de transações, adicione mais réplicas do pipeline apenas para ele (escala horizontal).
Cada instância implantada recebe o nome da instância como sufixo do pipeline (cd1, cd2, cd3). Embora compartilhem a mesma lógica, as instâncias funcionam como unidades de execução independentes.
Considerações finais
O recurso Multi-Instância centraliza a manutenção de pipelines e oferece flexibilidade por meio de parametrização avançada.
No cenário apresentado, cada Centro de Distribuição executa o mesmo pipeline com suas próprias configurações de fila e processamento, o que proporciona escalabilidade, simplicidade operacional e redução de esforço de manutenção.
Com o novo Modelo Baseado em Consumo, o número de instâncias implantadas não impacta diretamente os custos, mantendo o modelo alinhado à demanda real de transações.
Principais benefícios do Multi-Instância:
Escalabilidade por instância: Cada instância pode ser escalada de forma independente, horizontal ou verticalmente.
Manutenção centralizada: Um único pipeline serve a todas as instâncias, simplificando a gestão.
Parametrização flexível: Os campos da Multi-Instância permitem configurar variações específicas.
Facilidade de expansão: Para incluir um novo CD, basta criar uma nova instância no modelo e implantá-la.
Implantação gradual: Ideal para rollouts parciais e adoção progressiva.
Atualizado
Isto foi útil?