It would be nice to be able to specify a rate-limited channel to use as a buffer between your code and the network IO. I can imagine several implementations:
A flood-protected channel, which will only send a certain number of messages per second to not ever cause flooding.
A "CPM"-based channel, which will delay a message based on how long it would take a human being to type it on the keyboard. A simple strategy could be to count the characters and assume a steady characters-per-minute speed of typing.
An "at most k messages per n seconds"-respecting channel, which will never send more than k messages over any period of n seconds, but may reach the k messages as fast as possible.
It would be nice to be able to specify a rate-limited channel to use as a buffer between your code and the network IO. I can imagine several implementations: