Pular para o conteudo principal

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

Andrews Ribeiro

Founder & Engineer

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

Checklist de pratica

Use isto ao responder

Você concluiu este artigo

Próximo artigo Fan-out interno sem acoplamento temporal demais Artigo anterior Fallback, degradação e modo parcial

Continue explorando

Artigos relacionados