4. Client-side load balancing and fail-over

Mollom provides clients (i.e., Drupal, Joomla!, WordPress) with a list of available Mollom servers. Mollom provides different users with different server lists; paying customers use more and/or different servers than free Mollom users.

First, this lets Mollom deal with a larger overall request load by distributing requests among multiple servers, aka load balancing, and provides different users different service and performance guarantees.

Second, Mollom have `hot spare' servers on call to take over immediately if another machine becomes unavailable (high availability/fail-over). It also means that Mollom offers dedicated servers with maximum privacy and quality of service to enterprise users, while still offering a fall-back strategy: other servers take over seamlessly until the dedicated machine is again available.

Clients need to request a server list before further communication with Mollom are initiated. An initial server list can be obtained from http://xmlrpc.mollom.com/1.0 using the mollom.getServerList call discussed in Section 9.1. Once a list of Mollom servers has been retrieved, it should be cached persistently, and clients can make calls to the first server in the list. If this server fails, the client should fall back to the next server in the list and try again. The order of the servers in the list is important and should be respected; always start with the first server in the list.

Figure 2 illustrates in more detail how a Mollom client should implement the client-side load balancing and fail-over functionality.

Figure 2: A detailed overview of how a client should execute XML-RPC calls, how a client should perform error handling and how a client should take advantage of Mollom's load balancing and fail-over functionality.