[Spread-users] Spread Behavior?

John Schultz jschultz at spreadconcepts.com
Sat Apr 8 21:05:49 EDT 2006

On Sat, 8 Apr 2006, Steve V wrote:

> Is it possible to have a cluster of spread servers for redundancy
> purposes, to basically allow a client to connect to 1 IP and not worry
> about what server they're connected to, or must a client always bind
> to a specific server?

By definition, a client always connects to some specific server as Spread 
uses either a TCP/IP or IPC connection between client and server. Usually, 
the client specifies exactly which server to connect to in SP_connect.

However, you *could* externally set up some mechanism where connect 
attempts to a server name (IP or DNS name) will be implicitly split across 
some number of actual servers.  There are all sorts of solutions that do 
this (e.g. - web farms).

Most Spread applications are written not to care about which daemon they 
are connected to in a system.  The most obvious effect (other than 
connectivity) connecting to different servers has for a client application 
is that the full private name of the connection will be different.  For 
example if I connect to server "commedia" with login name "john", then my 
private name in Spread will be "#john#commedia".  If I connected to server 
"hops" with the same login name, then my private name would be 
"#john#hops".  If you write your application correctly, you can easily 
deal with these issues.

> Spread can guarantee that a message makes it to all servers, correct?
> Does it also allow confirmation to the sender whether or not all
> receiving clients processed the message successfully?

Spread cannot guarantee that a message makes it to all servers, as no 
communication system can a priori make that claim in all cases.  It also 
does not allow for automatic notification of receiver processing.  The 
only way that can be done in Spread is for all the receivers to explicitly 
acknowledge they've processed the messages (by sending a message).

> If a Spread server dies while messages are in the queue, or still
> being distributed, are those messages gone forever, or does spread
> maintain it's own list of active messages, so that they can be
> restarted, or requeried upon restart?

At the server that died those messages are gone forever as if/when the 
server restarts it does so from scratch.  The other servers in the system 
at the time of death will still deliver the messages to their applications 
if they have the messages.  There is no mechanism in Spread to restart or 
query for missed messages.  Spread does not do persistent messaging.

John Schultz
Spread Concepts
Phn: 443 838 2200

More information about the Spread-users mailing list