DISTRIBUTED MESSAGING SYSTEM WITH CONFIGURABLE ASSURANCES
First Claim
1. A componentized messaging system with configurable assurances, comprising:
- a message log configured to store messages, the message log including one or more processors, system memory, and message log components for composing any of an extensible set of capture protocols to capture messages from message producers, the extensible set of capture protocols configured to provide any of a variety of different message capture assurances from within a set of message capture assurances, the set of message capture assurances varying in the use of a durable store and varying in the use of transactions;
a cursor configured to track the progress of consumers through messages in the message log, the cursor including one or more processors, system memory, and cursor components for composing any of an extensible set of delivery protocols to deliver messages to message consumers, the extensible set of delivery protocols configured to provide any of a variety of different message delivery assurances from within a set of message delivery assurances, the set of message delivery assurances varying in the use of a durable store and varying in the use of transactions; and
wherein the message log and the cursor each also include further components for interoperating with one another to compose any of an extensible set of transfer protocols to transfer messages from the message log to the separate cursor, the extensible set of transfer protocols configured to provide any of a variety of different message transfer assurances from within a set of message transfer assurances, the set of message transfer assurances varying in the use a time window and varying in the use of acknowledged delivery.
2 Assignments
0 Petitions
Accused Products
Abstract
The present invention extends to methods, systems, and computer program products for configuring assurances within distributed messaging systems. A defined set of message log and cursor components are configurably activatable and deactivatable to compose a variety of different capture assurances, transfer assurances, and delivery assurances within a distributed messaging system. A composition of a capture assurance, a transfer assurance, and a delivery assurance can provide an end-to-end assurance for a messaging system. End-to-end assurances can include one of best effort, at-most-once, at-least-once, and exactly once and can include one of: durable or non-durable. Using a defined set of activatable and deactivatable message log and cursor components facilities more efficient transitions between desired assurances. In some embodiments, a composition of a capture assurance, a transfer assurance, and a delivery assurance provides durable exactly-once message delivery.
42 Citations
20 Claims
-
1. A componentized messaging system with configurable assurances, comprising:
-
a message log configured to store messages, the message log including one or more processors, system memory, and message log components for composing any of an extensible set of capture protocols to capture messages from message producers, the extensible set of capture protocols configured to provide any of a variety of different message capture assurances from within a set of message capture assurances, the set of message capture assurances varying in the use of a durable store and varying in the use of transactions; a cursor configured to track the progress of consumers through messages in the message log, the cursor including one or more processors, system memory, and cursor components for composing any of an extensible set of delivery protocols to deliver messages to message consumers, the extensible set of delivery protocols configured to provide any of a variety of different message delivery assurances from within a set of message delivery assurances, the set of message delivery assurances varying in the use of a durable store and varying in the use of transactions; and wherein the message log and the cursor each also include further components for interoperating with one another to compose any of an extensible set of transfer protocols to transfer messages from the message log to the separate cursor, the extensible set of transfer protocols configured to provide any of a variety of different message transfer assurances from within a set of message transfer assurances, the set of message transfer assurances varying in the use a time window and varying in the use of acknowledged delivery. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 13)
-
-
11. A componentized messaging system with configurable assurances, the componentized messaging system configured to provide durable, exactly once delivery of messages to a plurality of clients, the system comprising
a message log, the message log including one or more processors, system memory, and configurable message storage components for implementing any of extensible set of capture protocols to capture messages from message producers, the message log components configured to implement a durable transaction-based capture protocol for capturing messages from message producers; -
a separate client-side cursor, the separate client-side cursor separate from the message log, the separate cursor including one or more processors, system memory, and cursor components for implementing an extensible set of delivery protocols to deliver messages to message consumers, the cursor components configured to implement a durable transaction-based delivery protocol for delivering messages to message consumers; and wherein the message log and the separate cursor each also include components for interoperating with one another to implement an extensible set of transfer protocols to transfer messages from the message log to the separate cursor, the interoperating components configured to implement a transfer protocol providing message acknowledgment behavior and retention of a window of messages. - View Dependent Claims (12, 14)
-
-
15. In a distributed messaging system including a message log and a cursor, a method for configuring an end-to-end message assurance for message transfer from message providers to message consumers, the method comprising:
-
an act of receiving runtime configuration data indicating a combination of a capture assurance, a transfer assurance, and a delivery assurance that are to provide a desired end-to-end message assurance for message transfer in the distributed messaging system; an act of formulating a message log component configuration from the runtime configuration data, the message log component configuration for activating and deactivating appropriate message log components to compose the capture assurance and to compose a first portion of the transfer assurance to interoperate with a corresponding second portion of the transfer assurance provided by cursor components; an act of formulating a cursor component configuration from the runtime configuration data, the cursor component configuration for activating and deactivating appropriate cursor components to compose the delivery assurance and to compose the corresponding second portion of the transfer assurance to interoperate with the first portion of the transfer assurance provided by the message log components; and an act of instructing the distributed messaging system to compose the capture assurance, the transfer assurance, and the delivery assurance at the message log and cursor so as to implement the desired end-to-end message assurance for the distributed messaging system, including; an act of sending the message log component configuration to the message log to instruct the message log to compose the capture assurance and the first portion of transfer assurance; and an act of sending the cursor component configuration to the cursor to instruct the cursor to compose the delivery assurance and the second portion of the transfer assurance. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification