# Distributed Operations
![[assets/arch_distributed_query.png|256]]
**Distributed Operations** (and Parallel Operations) handle the coordination of data across process or network boundaries. They enable the engine to use multiple CPUs or multiple servers to solve a single problem.
### The Architectural Role
In a parallel or distributed query, data must be gathered from multiple workers and "shipped" to a coordinator node. These operations handle:
1. **Serialization**: Packing tuples into a format that can be sent over a shared memory queue or network socket.
2. **Redistribution**: Ensuring that data reaches the correct node for a join or aggregation (e.g., Sharding).
3. **Synchronization**: Waiting for all workers to finish their work before the next step can proceed.
### In the Explain Plan
These nodes indicate that the "Single Elephant" has delegated work to a team. Look for `Workers Planned` and `Gather` nodes.
```text
-> Gather (cost=1000.00..5678.00 rows=10000 width=24)
Workers Planned: 2
-> Parallel Seq Scan on large_table (cost=1.00..345.00 rows=5000 width=24)
```
---
![[Operations/Distributed/Broadcast]]
---
![[Operations/Distributed/Redistribute]]
---
![[Operations/Distributed/Gather]]