chore: add goroutinePool to manage goroutines