Go was born into a world where multiple processors are the norm and the ability of an application to scale across those processors is critical. Go meets this challenge by including language-level support for concurrency. However, the landscape continues to evolve and languages are now being challenged to connect multiple applications in a distributed ecosystem. This course takes you through the implementation of such a system using as much core Go as possible. While some libraries are used to access message queues, etc., the distributed nature of the resulting suite of applications will be composed of as much core Go as possible with little or no support from other third-party libraries.