Go Pipeline

One of the most powerful things about Golang is the ability to run parts of your application concurrently. This allows the application to run in parallel at times (depending on the number of cores) or continue to run while waiting for a blocked process. There are a number of concurrency patterns that allow you to structure your applications to get a performance boost. Recently I stumbled across the “Pipeline” pattern and was able to use it to transform incoming data and aggregate the results.