A method for publishing a message, the method comprising: receiving a subscription request at a first remote relay from a first client, wherein the subscription request includes a target associated with a character string; transmitting the subscription message from the first remote relay to each of a first set of central relays (1230a, 1230b,..., 1230n) and each of a second set of central relays (1240a, 1240b,..., 1240n), wherein the subscription message includes the said associated target; receiving a publication request at a second remote relay from a second client, wherein the publication request includes a message string characterized by a pattern; transmitting the publication message from the second remote relay to a first central relay of the first set of central relays and a second central relay ofthe second set of central relays, wherein the publication message includes the said pattern-characterized message string; determining, at one ofthe first set of central relays and at one ofthe second set of central relays, that the said target matches at least a portion of the said pattern-characterized message string; if a match is found, transmitting the message string from one of the first set of central relays and one of the second set of central relays to the first remote relay; the method being characterised by: determining, at the first remote relay, that the target matches at least a portion of the pattern in the message string transmitted either from one of the first set of central relays or one ofthe second set of central relays; and transmitting, from the first remote relay, the message string to the first client when the target matches at least a portion of the pattern and the message string has not been previously received at the first remote relay. receiving a subscription request at a first remote relay from a first client, wherein the subscription request includes a target associated with a character string; transmitting the subscription message from the first remote relay to each of a first set of central relays (1230a, 1230b,..., 1230n) and each of a second set of central relays (1240a, 1240b,..., 1240n), wherein the subscription message includes the said associated target; receiving a publication request at a second remote relay from a second client, wherein the publication request includes a message string characterized by a pattern; transmitting the publication message from the second remote relay to a first central relay of the first set of central relays and a second central relay ofthe second set of central relays, wherein the publication message includes the said pattern-characterized message string; determining, at one ofthe first set of central relays and at one ofthe second set of central relays, that the said target matches at least a portion of the said pattern-characterized message string; if a match is found, transmitting the message string from one of the first set of central relays and one of the second set of central relays to the first remote relay; determining, at the first remote relay, that the target matches at least a portion of the pattern in the message string transmitted either from one of the first set of central relays or one ofthe second set of central relays; and transmitting, from the first remote relay, the message string to the first client when the target matches at least a portion of the pattern and the message string has not been previously received at the first remote relay.