Idempotent Event Handling via Partitioned Consumer Clusters

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In event-driven architectures, implementing idempotence to handle duplicate events efficiently is challenging due to the high cost of scanning a central table for event status, leading to performance degradation as the system scales up.

Innovation Solution

A partition-based method is introduced, where events are distributed among consumer workers and segregated tables, using a hash of the context identification and modulo operation to determine the partition and table for event processing and storage, reducing the load on the database and improving performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a central table is used to track event status for idempotence, then event handling correctness is ensured, but system performance degrades as the system scales up

Engineering Contradiction:
Improveevent handling correctnessVSAvoidsystem performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent divides the single central table into multiple segregated tables, each handling a subset of event types or event ranges. This segmentation distributes the read/write load across multiple tables, reducing the performance degradation that occurs when a single central table is used to track event status for idempotence checking.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a new dimension for organizing event status by creating segregated tables with different structures or perspectives (e.g., partitioning by event type, event ID ranges, or consumer groups). This dimensional change allows the system to maintain comprehensive event tracking while distributing the computational burden across multiple specialized tables.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Device complexity

If a single central table is used for event status tracking, then implementation simplicity is maintained, but database reading and writing pressure increases

Engineering Contradiction:
Improveimplementation simplicityVSAvoiddatabase reading and writing pressure
Core Design Contradiction:
Device complexityVSQuantity of substance

Solution Approach 1:

The patent segments the database workload by creating multiple segregated tables that partition event status data. This reduces the number of read/write operations required on any single table, thereby decreasing the overall database pressure while maintaining a relatively simple implementation through systematic partitioning strategies.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Each segregated table is optimized for specific query patterns or event types, allowing local optimizations that reduce read/write pressure. For example, tables can be structured to minimize locking conflicts, optimize index usage, or reduce the scope of transactions, thereby decreasing overall database pressure while maintaining implementation simplicity.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS12260270B2Idempotent event handling
Publication Date: 2025.03.25 SAP SE
  • US12260270B2 patent drawing
  • US12260270B2 patent drawing
  • US12260270B2 patent drawing

AI summary

A partition-based method to implement idempotence in an event-driven architecture is provided, which acts to reduce the pressure of database reading and writing, thus improving the performance of event handling. In order to improve parallelism, a consumer cluster (a cluster of multiple consumers that can share the responsibility of processing events) is established such that the events are distributed among different partitions within the cluster. Each partition contains a different consumer worker (with its own cache). An event dispatch module is then used to dispatch events among the consumer workers in a way that keeps the load balanced. In an example embodiment, this is performed by generating a partition identification for an event based on a hash of the context identification of the session established between the user and the application when the event was generated, followed by a modulo operation based on the number of consumer workers in the cluster.