Concurrency is the New Memory Management
These days, we all need to build “cloud apps.” We’ve heard “cloud” so many
times at this point that it’s a buzz word, but underneath the hype lives a real
fact for us developers: everything we build needs to be a distributed system.
For our apps to run, we must have servers and they need to respond to requests
from our apps, all the time. So we need to build systems that have many
computers to provide all the fault tolerance, throughput, etc… we need.
You’ve probably heard this all before.
Distributed Systems are Hard
This is a fact that we all know by now. Computers die, networks get congested,
etc…
The bottom line is that our programs are deployed onto multiple nodes as a
process on each, and each process communicates with all the others.
The process model is still powerful but it has changed on the server side. Now
every process communicates with N other identical ones, making a...