NOTE
1.10 Distributed Computing
A compact introduction to distributing computation across machines, with batch and stream processing as two common execution models.
This is a historical learning note and may contain outdated or incomplete understanding.
1. What Is Distributed Computing?
Distributed computing divides computation across multiple processes or machines that coordinate over a network.
2. Why Use It?
- process datasets or workloads larger than one machine can handle;
- scale throughput horizontally;
- place computation near data;
- tolerate machine failures through retries, replication, or recomputation.
3. Common Processing Models
3.1 Batch Processing
Batch systems process a bounded input dataset, often as a scheduled or explicitly submitted job. Completion and total throughput are usually more important than per-event latency.
3.2 Stream Processing
A stream is an unbounded sequence of events that grows over time. Stream processors continuously consume events and update outputs or state.
An event normally contains a payload and one or more notions of time, such as event time or processing time. Producers append events and one or more consumers process them.
Message queues and durable event logs are common transport layers for stream-processing systems.