the loops have a different purpose and I chose this style intentionally to reflect that the number of publisher goroutines should match the number of destination addresses.

they're separate because you want all the writers created first, then pass that full slice to the publishers...