use a static worker pool rather than starting a new goroutine for every request