Channels can be any type in Go. A channel of structs allows you to pass a lot of state with a single message. This recipe will explore using of channels to pass around complex request structs and return their results in complex response structs.
In the next recipe, Using the worker pool design pattern, the value of this becomes even more apparent as you can create general purpose workers capable of performing a variety of tasks.
Executing state management for channels
Getting ready
Refer to the Getting ready section of the Using channels and the select statement recipe in this chapter.