I recently implemented something very similar in a project of mine and after surveying numerous broadcast techniques, I came to basically the same conclusion you have. It's best to let the dispatcher provide the channel to the listeners, with some pre-defined buffer size. It doesn't eliminate slow listeners from being able to stall the broadcast, but it does help smooth things out when there is some variability.