Skip to content

Channels

A channel transfers values between concurrent tasks while coordinating senders and receivers.

flowchart LR J[Junior: send and receive] --> M[Middle: compose pipelines] --> S[Senior: lifecycle and pressure] --> P[Professional: runtime design]
flowchart LR Producer -->|send| Channel[(Bounded channel)] -->|receive| Consumer
Level Guide You are done when
Junior Start You can use buffered and unbuffered channels.
Middle Apply You can build cancellation-safe fan-out/fan-in.
Senior Operate You can prevent leaks and overload.
Professional Design You can choose channel semantics and implementation.

Practice rule: The sending side owns closure; every blocked operation needs a cancellation path.

CSP | Message passing