Hacker News new | ask | show | jobs
by vladev 4738 days ago
I'm hoping to start seeing projects in Go because Go gives them an advantage, not for the sake of it being in Go.
3 comments

Does the project have to be open source?

My company currently is using Go to monitor and respond to events on hundreds of thousands of RabbitMQ message queues. We create a goroutine for handling each queue, and Go handles all of the concurrency and threading in the runtime while avoiding the resource overhead of standard threads. All of this is done in an application that took about 6 hours to write.

It really made a difference in our experience.

Can you share any details about how many resources this program requires to run?
For the vast majority of cases that we deal with, we don't really need much for resources to run this application.

One specific test uses approximately 20k goroutines and averages 15-20MB RAM depending on test load. As for CPU utilization, the impact is minimal; RabbitMQ is the biggest bottleneck, as our peak message throughput for a single RabbitMQ broker is about 50k/messages per second, which our go process is able to handle without much issue. The worst-case scenario that I've been able to test for is one where those 50k messages are evenly spread across different queues; even then, our CPU utilization wasn't any higher than 15%/core on a 12-core server.

We'll never know where Go excels unless we build lots of things with it first :)
Go seems like a reasonable choice for this type of thing though, doesn't it?