2. Background

Clients connect with their favorite newsreader to NNTPSwitch. The client and nntpswitch perform authentication and optionally the client gets some active or newsgroup file lists. When the client sends a command which requires a newsgroup itself, nntpswitch connects to a backend spool server. The list of which groups belong to which server are specified in the nntpswitch specific active file format. If the client performs a command inside a newsgroup then actually nntpswitch sends that command to a backend server and sends all data from that backend server directly back to the client. Hardly any processing is done with data from a backend server passed back to the client.

Posts work differently in the fact that nntpswitch handles them itself. After a client has posted something nntpswitch creates a separate connection to a posting server and sends the article with the IHAVE command. If the article is posted in a moderated group nntpswitch emails the message to the moderator. Also by default nobody can post approved postings. Ip addresses of people with approved posting rights should be listed with the apost option in the access.conf.

No data besides the active file, which is generated by updategroups, is cached or stored to disk with the assumption that a backend spool server will always be faster than a frontend machine. Or better, the backend servers should take most of the load. Backend servers can be load-balanced or made redundant more easily than frontend servers. Backend servers are good at storing articles and overview data while frontend servers take all the authentication and accounting stuff.