Nice article. A quick note though. Channels in Go are not used for Inter Process Communication, they are for communication and synchronization of data between functions.
From Go's spec: "A channel provides a mechanism for two concurrently executing functions to synchronize execution and communicate by passing a value of a specified element type."
From Go's spec: "A channel provides a mechanism for two concurrently executing functions to synchronize execution and communicate by passing a value of a specified element type."