nostr:npub1zuzyg5k8qdtu89nnzr5qmflzwleu7rlhm0t50gduu83qr04nrnus0hm2vc I can't tell you the right way but I can say I don't think it's what you listed.
My thoughts would be a channel for input (say the url) a waitgroup of 10, a single go routine that take from the input channel, executes against the url and outout to the output results and errors.
I'd probably limit the input chan to 10 items to control the rate, along with the wg of 10 it should mean a max of 10 things running
It's probably something like this https://gobyexample.com/worker-pools
I'm a golang newbie and still wrapping my head around pooling myself.