Backstop Consumer Segmentation for Message Format Compatibility

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In producer-consumer systems, message format updates can lead to compatibility issues where consumers are unable to process messages generated by producers with newer formats, resulting in delays, resource wastage, and potential message loss or expiration, especially when updates are not deployed uniformly across the system.

Innovation Solution

The system splits consumers into main and backstop subsets, where updates are first deployed to backstop consumers, ensuring they receive updates before main consumers, allowing backstop consumers to process failed messages and signaling producers to rollback or send messages to a dead letter queue if processing fails.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If message format updates are deployed to producers before consumers, then producers can generate messages with newer formats, but consumers may be unable to process these messages due to format incompatibility

Engineering Contradiction:
Improvemessage format update capabilityVSAvoidmessage processing compatibility
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The consumer set is divided into main consumers and backstop consumers. Main consumers handle normal message processing, while backstop consumers are specifically deployed with newer message format capabilities to handle messages that main consumers cannot process. This segmentation allows the system to support format updates without requiring all consumers to be updated simultaneously.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Backstop consumers act as intermediaries between producers with newer message formats and main consumers with older formats. When main consumers encounter messages they cannot process, these messages are routed to backstop consumers which can handle the newer formats, thus mediating the compatibility issue between updated and non-updated consumers.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Stability of the object's composition

If updates are deployed uniformly across all consumers, then system consistency is maintained, but deployment flexibility and ability to handle transitional states are reduced

Engineering Contradiction:
Improveconsumer system consistencyVSAvoidupdate deployment flexibility
Core Design Contradiction:
Stability of the object's compositionVSAdaptability or versatility

Solution Approach 1:

The system dynamically adjusts consumer behavior based on message processing needs. Main consumers operate with standard message formats, while backstop consumers are dynamically activated to handle messages with newer formats. This dynamic configuration allows the system to adapt to different deployment stages without requiring uniform updates across all consumers.

Inventive Principle:
Principle #15Dynamics

3Reliability

If consumers retry processing failed messages repeatedly, then message delivery reliability improves, but resource consumption increases and message expiration risk grows

Engineering Contradiction:
Improvemessage delivery assuranceVSAvoidconsumer resource consumption
Core Design Contradiction:
ReliabilityVSLoss of energy

Solution Approach 1:

The system extracts and isolates messages that cannot be processed by main consumers, routing them to backstop consumers. This prevents main consumers from repeatedly wasting resources on messages they are incapable of processing, while ensuring these messages still receive processing attention from appropriately updated consumers.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS11307912B1Forward message compatibility safety in producer-consumer systems
Publication Date: 2022.04.19 AMAZON TECH INC
  • US11307912B1 patent drawing
  • US11307912B1 patent drawing
  • US11307912B1 patent drawing

AI summary

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.