Merge Channels in Go(lang)
Recently, I had to deal with receiving several events from Kafka. There were about 6 different types of events, but internally, the ways I had to deal with them were quite similar — so I decided for a generic method.
From Kafka, I was receiving events in individual channels (one channel per event type)
As my handling of the events was the one generic method, I wanted to take all the channels, merge them into a single channel which has all the events from all channels, combined*, from which I can pick one at at time**, and deal with it.
Doing it in Go was a breeze. Seriously, in 10 lines, all was done.
Here’s how I did it. (well, business events are replaced by integers here ;) )
I have two channels — one which delivers me odd numbers, and another one which delivers even numbers. And here’s how one can merge them.
Note that the function accepts a slice of channels — so, it doesn’t matter whether it’s just two channels, or 100.
For completion, here’s my sample program which contains the channel creations as well.
Run it as follows:
go run channelmerge.goAnd you’ll see all whole numbers being printed on your screen. (warning: infinite loop)
If you look closely, you’ll see that they are not all in order — of course, the channels are not synchronised with each other.
Cool. ah?
Signing off,
Sands.
*Combining the channels would give me a better solution than having 6 different loops to do the same thing, and having to add more such loops when I have more events-types**Naturally, at some point of time, I would want to speed that up,.. That we can do in another post for ThreadPooling
About the author
We have other interesting reads
Nginx Ingress Expires in March 2026 — Migrate to Gateway API with Envoy Gateway
Full setup with TLS (cert-manager), wildcard domains, automatic DNS (ExternalDNS), and real-world debugging
SSH to WSL from terminal emulator
So, you have setup WSL ( Windows Subsystem for Linux) and are not happy with the “built in”emulator. In my case, I wanted to use an…
How AI-Powered Fraud Detection Works: A Business Leader’s Guide
Understanding the technology that protects billions in transactions every day
