We've certainly covered a lot about concurrent and parallel Go, but one of the biggest infrastructure challenges for developers and system architects today has to do with cooperative computing.
Some of the applications and designs that we've mentioned previously scale from parallelism to distributed computing.
Memcache(d) is a form of in-memory caching, which can be used as a queue among several systems.
Our master-slave and producer-consumer models we presented in Chapter 4, Data Integrity in an Application, have more to do with distributed computing than single-machine programming in Go, which manages concurrency idiomatically. These models are typical concurrency models in many languages, but can be scaled to help us design distributed ...