25 de Agosto de 2025
Fan-in interno e agregação de resultados sem coordenador frágil
Quando vários resultados internos precisam convergir e tudo depende de um coordenador frágil, o backend troca paralelismo por ponto único de confusão.
Andrews Ribeiro
Founder & Engineer
3 min Intermediario Sistemas
O problema
Alguns fluxos internos espalham trabalho.
Depois precisam juntar resultado.
Isso aparece em:
- processamento paralelo
- aprovação em múltiplas etapas
- consolidação de status
- composição de resposta interna
O problema é que muita equipe faz a segunda parte no improviso:
- guarda pedaços em algum lugar
- espera timeout
- junta o que chegou
- tenta adivinhar se aquilo já basta
No começo funciona.
Depois o coordenador vira o lugar mais frágil do fluxo.
Modelo mental
Fan-in interno precisa responder três perguntas:
- o que significa “completo”?
- o que significa “parcialmente aceitável”?
- o que significa “falhou de verdade”?
Sem isso, agregação vira mistura de:
- timeout arbitrário
- estado parcial acumulado
- regra escondida em
if
Não é a convergência que machuca.
É a convergência sem semântica.
Exemplo simples
Imagine um onboarding empresarial que depende de:
- validação documental
- análise de risco
- criação de billing profile
O fluxo final talvez precise:
- dos três para liberar conta completa
- de dois para deixar conta em modo parcial
- de qualquer um falhar criticamente para travar tudo
Se o coordenador não modelar isso explicitamente, você ganha:
- estados intermediários difíceis de explicar
- timeout que decide negócio sem querer
- retry que consolida coisa velha com coisa nova
O erro comum
O erro comum é tratar agregação como problema puramente técnico:
“junta os resultados quando todo mundo responder”
Nem sempre “todo mundo respondeu” é a condição certa.
Outro erro comum é ter um coordenador central guardando cada detalhe de todos os passos.
Ele vira:
- gargalo
- fonte de estado parcial opaco
- ponto único de regra acidental
O que normalmente ajuda
Normalmente ajuda decidir explicitamente:
- quais respostas são obrigatórias
- quais são opcionais
- quanto tempo faz sentido esperar
- o que fazer quando uma parte falha
Na prática, isso costuma gerar:
- critérios claros de completude
- agregação por status relevante, não por dump total
- checkpoints observáveis
- retentativa menos ambígua
Como um senior pensa
Quem já viu agregador virar lama costuma perguntar:
- esse fluxo realmente precisa coordenador central?
- que parte do resultado é essencial e que parte pode degradar?
- o timeout está representando regra de negócio sem querer?
- o estado parcial salvo continua explicável amanhã?
Essa conversa geralmente reduz bastante fragilidade.
Ângulo de entrevista
Esse tema aparece em workflows internos, orquestração, jobs paralelos e system design.
O entrevistador quer ver se você entende:
- que juntar resultados também é decisão de arquitetura
- que completude e parcialidade precisam de semântica explícita
- que coordenador central pode virar ponto frágil do sistema
Resposta forte costuma soar assim:
“Eu trataria fan-in como regra de convergência, não só sincronização técnica. Definiria quais resultados são obrigatórios, quais podem atrasar e o que significa estado parcial aceitável. Sem isso, o coordenador vira só um acumulador frágil de estado parcial.”
Takeaway direto
Paralelizar é fácil.
Juntar de volta sem criar confusão é que separa fluxo esperto de fluxo frágil.
Resumo rápido
O que vale manter na cabeça
- Fan-in não é só esperar todo mundo terminar; é decidir qual combinação de resultado realmente importa.
- Coordenador frágil acumula estado parcial demais, timeout arbitrário e regra invisível.
- Agregação boa explicita completude, falha tolerável e critério de consolidação.
- Nem todo fluxo paralelo precisa convergir do mesmo jeito nem no mesmo prazo.
Checklist de pratica
Use isto ao responder
- Consigo dizer quando esse fluxo está completo, degradado ou inconclusivo?
- O agregador está guardando só o necessário ou virou depósito de estado parcial?
- Se uma ponta atrasar, o sistema sabe esperar, seguir parcial ou falhar claramente?
- Estou usando coordenador central porque o fluxo exige ou porque não modelei a convergência direito?
Você concluiu este artigo
Compartilhar esta página
Copie o link manualmente no campo abaixo.