IRC Bot Inquiries

I’m pretty sure that some of the larger bots don’t necessarily use the same connection for reading and writing to a single room.
Since you can write to any room from any connection, a load-balancing system could spread out all messages on all connections, which means if one room exceeds the message limit, other connections will start emitting those messages.

Sending to rooms that the connection is not joined in would mean that you have to store mod status somewhere for each channel in order to use the 100-cap and not hit the 20-cap for any one connection.

If I made a really large bot, I think I would build it as a cluster of connection-nodes and a cluster of message-parsing nodes, then connect them with something like an MQ and/or load-balancing system. (Either spawning actual new programs and communicating by an external MQ, or by at least running multiple threads/coroutines, maybe both)
That way, we could spread messages and join/parts to all of the connections.
If I have loads of connections, I could spread out messages sent to the larger channels throughout all the connections, using round-robin or something more advanced. That way we could even send much more than the 100-cap to a single heavily trafficked channel.

I don’t really have the need for making another large-scale bot though. I’ll never reach feature parity with any of the big ones, so my projects will mostly be niche and/or self-hosted.