Descrizione
Operatore di fan-in/join enterprise che combina gli output di N nodi paralleli upstream in un singolo output strutturato — la primitiva fondamentale di tutte le architetture fan-out + fan-in del workflow orchestration moderno (Airflow XCom, Temporal Workflow, AWS Step Functions Parallel). Quando hai 3-10 rami che girano in parallelo per ottimizzare il tempo totale dell'esecuzione (es. 3 search API simultanei invece di sequenziali = 3× speedup), prima del passo successivo devi necessariamente unire i risultati in una struttura unica processabile — questo nodo lo fa con strategia configurabile per i 4 pattern di merge più comuni nei workflow business. Il merge è un fan-in che gira DOPO che i branch upstream sono completati (non controlla la loro esecuzione parallela). Quattro strategie: Strategia "all" — mappa output di ogni branch alla sua nodeId di provenienza: { branches: { "search_google": …, "search_bing": … }, branchCount } — il pattern più strutturato che preserva origin. Strategia "concat-arrays" — ogni branch ritorna un array (o una sua sub-property configurabile via "arrayProperty", default "results"), concatenati in uno solo: { results: [...], branchCount, totalItems }. Strategia "any"/"first" — usa l'output del PRIMO branch in ordine di sorgente (idx più basso); ritorna quell'output direttamente (fallback semplice, NON racing: i branch sono già eseguiti). Strategia "last" — usa l'output dell'ULTIMO branch in ordine. Sourcing dei branch: lista CSV esplicita di nodeId via "sourceNodeIds" (raccomandato per multi-branch complessi); se vuoto prende TUTTI i nodeOutputs disponibili al merge. I branch senza output (es. ramo skipato da logic_switch) vengono semplicemente esclusi. Chiavi nodeId tipo `__proto__` non inquinano il prototype (Object.create(null)). Use case ricchi della pipeline business: 3 web search paralleli (Google + Bing + DuckDuckGo) → 60 risultati uniti per dedup downstream + lead scoring; multi-API enrichment di un lead B2B (lookup CRM Odoo + social media LinkedIn + geo location da IP) in parallelo → object enriched complete per il sales team; ensemble AI agent voting su task di classificazione difficile (3 LLM provider diversi votano la stessa label, majority vote dello strategia "all" con post-processing); aggregazione status monitoring (uptime check su 5 endpoint concurrent) in unica dashboard view; fan-out su multi-channel notification (Slack + Telegram + Email + WhatsApp) con merge per audit di delivery status complessivo.
