Combining or aggregating results from multiple sources into a single output or endpoint.
Fan-in is often used in systems where multiple services or tasks produce data that needs to be merged, processed together, or routed through a single point - common in data aggregation, analytics, and microservices orchestration.
Use fan-in when multiple parallel processes or service calls need to send results to a single service or when a system needs to collect and aggregate data from many sources.
You need to know
Often paired with fan-out: Fan-in usually follows fan-out, where results from parallel tasks are collected and merged before proceeding.
Aggregation logic matters: You may need to filter, deduplicate, sort, or summarize incoming data before combining it.
Bottlenecks and latency risks: A single aggregation point can become a performance bottleneck or single point of failure; use batching, timeouts, or async processing.
Popular technologies
Apache Flink - Stream processing framework good for aggregating data from many sources.
AWS Lambda with step functions - Supports fan-in/fan-out orchestration with automatic result collection.
Prometheus - Aggregates metrics from multiple sources into a single queryable system.
Like posts like this?
Every week, you'll get a new system design concept, broken down like this one.
Free subscribers also get a little bonus:
🎁 The System Design Interview Preparation Cheat Sheet
If you're into visuals, paid subscribers unlock:
→ My Excalidraw system design template – so you have somewhere to start
→ My Excalidraw component library – used in the diagram of this issue
No pressure though. Your support helps me keep writing, and I appreciate it more than you know ❤️