Patent ID: 8094669

Claim:
A system for storing and forwarding messages to a distributed destination, comprising: one or more microprocessors; a source operable to produce a plurality of messages, wherein each message is adapted to be forwarded to the distributed destination, wherein the distributed destination includes a plurality of member destinations, and each said member destination is operable to accept and process one or more messages, and wherein each said message is assigned with a unique sequence number that associates each said message with a particular member destination, wherein the unique sequence number indicates how to route said message to a particular member destination; a source queue operable to store the plurality of messages; and a forwarder running on the one or more microprocessors that is operable to: consume one or more messages of the plurality of messages from the source queue; determine, for each said message, a particular member destination from the plurality of member destinations in the distributed destination based on an evaluation of the unique sequence number assigned to the message; deliver the one or more messages of the plurality of messages to the distributed destination exactly once; provide ordered forwarding of sequences of multiple sub-orderings from a local destination to a remote distributed remote destination; preserve quality of service even in an event of a subsequent restart after a system failure; use an algorithm that yields the same persistent I/O count as algorithms that don't preserve exactly-once or ordering; require no significant additional implementation on the remote destinations other than a duplicate elimination algorithm; and have no dependency on a XA transaction standard.