(The data flows in the direction of the arrow.) By default, sends and receives block until the other side is ready. This allows goroutines to synchronize without explicit locks or condition variables. channels.go