The network structure does nothing to alleviate this problem. In a SharedAntiSpam system with a global server, latency is low because updates do not need to propagate far, but as the network grows, the cost to the blacklist provider grows untenable. In a P2P system, the network traffic at any given node can be kept low, but the latency of global immunization now grows as the network does. Any steps taken to prevent node downtime breaking the network will only increase the problem.
Therefore, use Rest:HttpEvents instead of polling. Each publisher in the system maintains a list of subscribers, and actively pushes new updates to them all via HTTP. Subscribing to a publisher is quick and easy, a single HTTP request. Now latency is kept minimal, yet the network traffic generated is a simple function of updates times subscriptions. Further, the bandwidth used by the system can be actively controlled by the server. The approach even supports decentralization of a publisher's burden, transparent to the subscribers, allowing a simple SharedAntiSpam system to work even if the number of subscribers grows beyond the capacity of the original server.
An OpenSource library for setting up or joining a RapidAntiSpam network can be found at [SourceForge:http-events], and [our own list of spam patterns] doubles as a publisher. Currently an early beta, comments, bug reports and even source code are all welcomed. Let's make anti-spam a reality!
The http-events
library has a lot more potential than anti-spam, particularly with the coming explosion of RSS through Longhorn/WSS. It's essentially an Observer-notify pattern (push rather than poll), which is the right way to do things.