# US 11,307,912 B1 · Forward message compatibility safety in producer-consumer systems

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 11,307,912 B1
- Document ID: US11307912B1
- Status: Granted
- Kind: B1
- Application number: 17/036,362
- Filed: 2020-09-29
- Granted: 2022-04-19
- Earliest claimed: 2020-09-29
- Assignees: Amazon Technologies, Inc.
- Applicants: Amazon Technologies, Inc.
- Inventors: Frank Gregory Williston; Marcel Andrew Levy; Andrew Ketcham; Blake P. Hess
- Web page: https://patentgrep.com/patent/US11307912B1

## CPC

- G06F 9/546: {Message passing systems or structures, e.g. queues}
- G06F 8/65: Updates (security arrangements therefor G06F21/57)
- G06F 9/5038: {considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration (scheduling strategies G06F9/4881 and subgroups)}
- G06F 21/606: {by securing the transmission between two devices or processes}
- G06F 11/0751: {Error or fault detection not based on redundancy (power supply failures G06F1/30; network fault management H04L41/06)}
- G06F 11/0793: {Remedial or corrective actions (recovery from an exception in an instruction pipeline G06F9/3861; by retry G06F11/1402; for recovering from a failure of a protocol instance or entity H04L69/40)}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A set of consumers of a producer-consumer system includes a main consumer subset and a backstop consumer subset. A plurality of updates to message processing information are deployed to the set of consumers. Each update of the plurality of updates is first deployed to the backstop consumer sub-set and is subsequently deployed to the main consumer subset. The main consumer subset may obtain messages from producers and attempt to process the messages. By contrast, the backstop consumer subset may obtain messages only after a failed processing attempt by the main consumers. Upon obtaining a message, a main consumer may process the message successfully or may fail processing and provide the message for processing by a backstop consumer, which may be more up to date than the main consumer.

## Claims

### Claim 1

A computing system comprising:
a set of consumers of a producer-consumer system of a certificate management service, wherein the set of consumers includes a main consumer subset and a backstop consumer subset, wherein a plurality of updates to message processing information are deployed to the set of consumers, wherein each update of the plurality of updates is first deployed to the backstop consumer subset and is subsequently deployed to the main consumer subset, and wherein the backstop consumer subset obtains only messages that have failed processing attempts performed by the main consumer subset; and
one or more memories having stored therein instructions that, upon execution by one or more computer processors, cause the one or more computer processors to perform operations comprising:
obtaining, by a first consumer in the main consumer subset, a first message;
performing, by the first consumer, a first processing attempt to process the first message;
determining, by the first consumer, that the first processing attempt has failed;
providing, by the first consumer, based on failure of the first processing attempt, the first message for processing by the backstop consumer subset;
obtaining, by a second consumer in the backstop consumer subset, the first message; and
processing, by the second consumer, the first message.

### Claim 2 (depends on 1)

The computing system of claim 1, wherein the backstop consumer subset is configured to generate alerts based on failures of processing attempts by the backstop consumer subset.

### Claim 3 (depends on 2)

The computing system of claim 2, wherein the alerts trigger performances of rollback operations on message producers.

### Claim 4 (depends on 1)

The computing system of claim 1, wherein the backstop consumer subset is configured to re-attempt processing more rigorously than the main consumer subset.

### Claim 5

A computer-implemented method comprising:
receiving, by a first consumer, a first message, wherein a set of consumers of a producer-consumer system includes a main consumer subset and a backstop consumer subset, wherein a plurality of updates to message processing information are deployed to the set of consumers, wherein each update of the plurality of updates is first deployed to the backstop consumer subset and is subsequently deployed to the main consumer subset, and wherein the first consumer is in the main consumer subset;
performing, by the first consumer, a first processing attempt to process the first message;
determining, by the first consumer, that the first processing attempt has failed;
providing, by the first consumer, based on failure of the first processing attempt, the first message for processing by the backstop consumer subset;
receiving, by a second consumer in the backstop consumer subset, the first message; and
processing, by the second consumer, the first message.

### Claim 6 (depends on 5)

The computer-implemented method of claim 5, wherein the backstop consumer subset obtains only messages that have failed processing attempts performed by the main consumer subset.

### Claim 7 (depends on 5)

The computer-implemented method of claim 5, wherein the first message has a format that is readable based on a first update that has already been deployed to the second consumer but that has not yet been deployed to the first consumer.

### Claim 8 (depends on 5)

The computer-implemented method of claim 5, further comprising:
performing, by the second consumer, a second processing attempt to process a second message;
determining, by the second consumer, that the second processing attempt has failed; and
generating, by the second consumer, an alert based on failure of the second processing attempt.

### Claim 9 (depends on 8)

The computer-implemented method of claim 8, wherein the alert triggers performance of a rollback operation on a message producer.

### Claim 10 (depends on 5)

The computer-implemented method of claim 5, wherein the backstop consumer subset is configured to re-attempt processing more rigorously than the main consumer subset.

### Claim 11 (depends on 5)

The computer-implemented method of claim 5, wherein the main consumer subset retrieves messages from one or more main message queues and wherein the backstop consumer subset retrieves messages from one or more backstop message queues that are separate from the one or more main message queues.

### Claim 12 (depends on 5)

The computer-implemented method of claim 5, wherein the main consumer subset retrieves messages from only a single message queue.

### Claim 13

One or more non-transitory computer-readable storage media having stored thereon computing instructions that, upon execution by one or computing devices, cause the one or more computing devices to perform operations comprising:
receiving, by a first consumer, a first message, wherein a set of consumers of a producer-consumer system of a certificate management service includes a main consumer subset and a backstop consumer subset, wherein a plurality of updates to message processing information are deployed to the set of consumers, wherein each update of the plurality of updates is first deployed to the backstop consumer subset and is subsequently deployed to the main consumer subset, and wherein the first consumer is in the main consumer subset;
performing, by the first consumer, a first processing attempt to process the first message;
determining, by the first consumer, that the first processing attempt has failed;
providing, by the first consumer, based on failure of the first processing attempt, the first message for processing by the backstop consumer subset;
receiving, by a second consumer in the backstop consumer subset, the first message;
performing, by the second consumer, a second processing attempt to process the first message;
determining, by the second consumer, that the second processing attempt has failed; and
generating, by the second consumer, an alert based on failure of the second processing attempt.

### Claim 14 (depends on 13)

The one or more non-transitory computer-readable storage media having of claim 13, wherein the backstop consumer subset obtains only messages that have failed processing attempts performed by the main consumer subset.

### Claim 15 (depends on 13)

The one or more non-transitory computer-readable storage media having of claim 13, wherein the alert triggers performance of a rollback operation on a message producer.

### Claim 16 (depends on 13)

The one or more non-transitory computer-readable storage media having of claim 13, wherein the backstop consumer subset is configured to re-attempt processing more rigorously than the main consumer subset.

### Claim 17 (depends on 13)

The one or more non-transitory computer-readable storage media having of claim 13, wherein the main consumer subset retrieves messages from one or more main message queues and wherein the backstop consumer subset retrieves messages from one or more backstop message queues that are separate from the one or more main message queues.

### Claim 18 (depends on 13)

The one or more non-transitory computer-readable storage media having of claim 13, wherein the main consumer subset retrieves messages from only a single message queue.

### Claim 19 (depends on 13)

The one or more non-transitory computer-readable storage media having of claim 13, wherein the operations further comprise:
receiving, by a second consumer, a second message; and
processing, by the second consumer, the second message.

### Claim 20 (depends on 19)

The one or more non-transitory computer-readable storage media having of claim 19, wherein the second message has a format that is readable based on a first update that has already been deployed to the second consumer but that has not yet been deployed to the main consumer subset.
