Dividing work between multiple computers is sometimes the best way to solve a problem.
We do this all the time in real life and so much that we don’t even think about it. When you get a job or when you need to hire somebody, you’re distributing the work. When a store opens in a new location, it’s distributing the work. And even if you buy a spare part for your car that’s not needed yet but will be ready if the time comes, then you’re distributing the work.
This concept can be seen in designs of products too.
Notice how large trucks have multiple wheels to spread the weight? And how they’ll have two wheels side-by-side in case one goes flat?
Houses usually have a front door and a back door. This is more for convenience than anything else but it still helps distribute the work.
Large passenger jets usually have multiple engines and the plane can continue to fly even if it loses one. If all the engines stop working at the same time, sometimes a good pilot in the right conditions can still land the plane.
All of these examples can be found in computer software. That’s because the same problems and desires we face in the real world exist in software. The only difference is that software needs more abstract thought and planning because it’s harder to imagine something that you can’t touch directly.
There’s several common reasons for distributed computing.
- One is convenience.
- Two is speed.
- Three is reliability.
- Four is feasibility.
Listen to the episode as I describe these four common reasons and give example of each.