Work that's put into the system needs to be completed quickly and efficiently and the results need to return to the servers. Expired work has to be purged from the system, and new work always needs to be available to any client that wants it. All nodes should be able to communicate the information they need to at any time. The design is highly redundant at all levels so that if a node fails, no other node should be affected. Proxies and servers act in rings, where any node in the ring can serve the same functions as any other.
Security is also a critical factor in a large distributed system.
No node will act on a command or use data until it has verified that that command or data has come from a trusted source. Anything that is not from a trusted source is discarded, and measures are taken to ignore further commands from that source. Servers function to hand out tasks, receive completed work, and serve any data files related to their project. Servers will communicate with any proxy in the layer closest to them, or other peered servers, but will not talk to clients. Proxies Proxies are the middlemen of the network and do most of the communications tasks.