Patent ID: 7836123

Claim:
A method for publish/subscribe messaging utilizing pre-emptive subscriptions in a cluster of HTTP servers that includes load balancing, comprising steps of: a) an HTTP client sending a subscription request for a topic to any HTTP server of the cluster of HTTP servers; b) one HTTP server receiving and processing the subscription request to determine if a subscription for the requested topic currently exists, and if not, the HTTP server: creates a subscription for the requested topic for the HTTP client; publishes a message on a first topic with information on the newly subscribed requested topic for the HTTP client to all other HTTP servers comprising the cluster such that all the HTTP servers in the cluster subscribe to the requested topic on the requesting HTTP client's behalf; and returns to the requesting HTTP client a unique client identifier for the HTTP client's use with subsequent(“next”) requests to the requested topic; c) the HTTP client receiving the client identifier and using the identifier to send a request for a next available message for the subscription on the requested topic to any one of the HTTP servers comprising the cluster; d) the request for next message is received by any HTTP server, which responds by returning the next message on the subscribed to topic to the HTTP client and publishes a retained message on said first topic that contains details of an updated cursor for the requesting HTTP client; e) the HTTP client sends a request for a next available message on the subscription; and f) any HTTP server that receives and processes the request on the subscription subscribes to the first topic with the updated cursor position for the HTTP client, and uses the updated cursor information to determine which message in its message history is to be sent to the requesting HTTP client next, returns the next message to the HTTP client and publishes a retained message on the first topic containing information about the client's new cursor position; wherein HTTP client subscriptions and requests for next messages are routed to any HTTP server comprising the cluster controls that the HTTP client associated with a subscription shall automatically receive a next message published on the requested topic without fail and/or duplication.