Patent ID: 9319267
Filing Date: 2016-04-19
CPC Classification: H04L

Claim Text:
1. An assured message delivery system within a data communication network with resiliency for receiving messages from publishing client(s) and delivering the messages to subscribing clients with indicated interests matching the messages, comprising: (a) a primary message delivery system for delivering the messages to the subscribing clients during normal operation, said primary message delivery system comprising: (i) a plurality of first message queues, said first message queues being associated with the subscribing clients based on indicated interests; (ii) a first non-volatile data store; (iii) an additional message queue for storing replicate messages; and (iv) at least one delivery router processing individual messages received from the publishing client(s) for identifying the subscribing clients having indicated interests matching the individual messages received from the publishing client(s) and placing the individual messages into said first non-volatile data store, and into said first message queues based on the identified subscribing clients for delivery of the individual messages to said identified subscribing clients, and placing replicates of said individual messages in said additional message queue; (b) a communications link in communication with said additional message queue; and (c) a secondary message delivery system mirroring the configuration of the primary message delivery system, said secondary message delivery system comprising: said secondary message delivery system being configured to send acknowledgement messages back to the primary message delivery system when said replicates of said individual messages have been placed in said second non-volatile data store and upon activation to send said replicates of said individual messages seamlessly from said second message queues to said subscribing clients; wherein the primary message delivery system is configured to forward acknowledgements received from the subscribing clients to the secondary message delivery system, and the secondary message delivery system is configured to delete a replicate message corresponding to a message in the primary message delivery system for which message in the primary message delivery system an acknowledgement has been received from the subscribing clients; wherein the primary message delivery system is configured to determine whether an unacknowledged message requires replication, and if so whether said unacknowledged message requires synchronous or asynchronous replication, and if said unacknowledged message requires no replication or asynchronous replication the primary message delivery system is configured to send an acknowledgment back to the publishing client as soon as said unacknowledged message is placed in said first non-volatile data store, and if said unacknowledged message requires synchronous replication, the primary message delivery system is configured to send an acknowledgement back to the publishing client when an acknowledgment has been received from the secondary message delivery system indicating the secondary message delivery system has successfully stored said unacknowledged message in said second non-volatile data store; wherein if the primary message delivery system determines the secondary message delivery system has become congested, messages requiring synchronous replication in the second message queues are converted to messages requiring only asynchronous replication; and wherein if said additional message queue becomes congested, any unacknowledged messages are removed from said additional message queue once said unacknowledged messages have been delivered by the primary message delivery system.