IRC architecture questions reddit / irc ---------------------------------------------------------------------- PerformanceOdd2750 · 2023-01-29 14:03 Just some questions about servers... I think most of my confusion comes from thinking about IRC like Discord - you can spin up servers on Discord, but that doesn't necessarily mean there is a literal server instance being spun up. (or is there?) I found this post [https://superuser.com/questions/1307874/irc- terminology-network-vs- server](https://superuser.com/questions/1307874/irc-terminology- network-vs-server) which helps me understand a bit more, but I think I just need more clarification. 1. How do IRC servers join an existing IRC network? 2. Is there a TCP server instance per "topic"? Or are "servers" just an abstraction that groups clients into specific "topics" where a single TCP server is handling all traffic to these abstract servers? For example, does Libera.​Chat (or insert any IRC server name), dynamically spin up more IRC server instances or operators spin them up via some command when needed - or already have multiple IRC server instances already running in different availability zones? ---------------------------------------------------------------------- PerformanceOdd2750 · 2023-01-29 14:10 Ok -this explains it much more to me in the Servers section [https://libera.chat/guides/basics#how-does-irc- work](https://libera.chat/guides/basics#how-does-irc-work) \> Libera Chat has a network of servers. Don’t worry though, you only need to know one address for the network. That address is irc.libera.chat. Networks like us use a Round Robin system to distribute users evenly between servers. Having lots of servers provides redundancy, so one server being out of order doesn’t make the whole network stop. ---------------------------------------------------------------------- skizzerz1 · 2023-01-29 16:06 In IRC, servers are literal servers. A network is comprised of one or more servers linked together in some sort of spanning tree topology (hub and spoke is common). Traditionally, these servers are operated by different people, which makes for a federated network. Networks like Libera.Chat, however, manage all of the servers in the network centrally. Networks also have channels, which are the individual rooms you join. Channels are typically propagated between every server on the network, so it doesn’t matter which specific server you end up joining—the channels you want to join will be there. Channels available network- wide like this start with the # character. Some (not all) networks also support server-specific channels which start with the & character. A discord “server” is internally called a “guild” which should help you think of how it fits in conceptually—it’s a way to group related channels together. IRC does not have a similar concept here. Channels are simply available throughout the entire network. In a federated IRC network, new servers join by reaching an agreement with an existing server to link together. This usually requires a high level of trust in the operators of the new server, as well as backend configuration to establish the link. In a centralized IRC network, the network admins can just add or remove servers as the need arises. ---------------------------------------------------------------------- PerformanceOdd2750 · 2023-01-29 17:57 Awesome - this explanation is so helpful, thank you!