Application Server Failed Event Queue Management

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Cloud-based software applications with stateless and scalable architectures face challenges in error handling, particularly when dealing with failed requests, as the flow may no longer be available for retrieval, making it difficult to retry requests or determine appropriate remedial actions.

Innovation Solution

A system and method for processing failed events on an application server, where failed events and their related processing flows are stored in a failed event queue, allowing for analysis and corrective actions to be taken, including replaying flow instances to address failures.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If the flow engine retrieves flow documents on a request-by-request basis to achieve stateless and scalable architecture, then the application becomes scalable, but error handling becomes more challenging and flows may no longer be available for retrieval when retries are needed

Engineering Contradiction:
ImprovescalabilityVSAvoiderror handling capability
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system performs preliminary action by storing flow instances in memory before they are needed for retry operations. The flow instance store maintains copies of flow documents proactively, so when an event fails and retry is needed, the flow is already available without requiring retrieval from external storage. This resolves the contradiction by ensuring flow availability (reliability) while maintaining the request-by-request processing model (scalability).

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The flow instance store acts as an intermediary component between the event processing system and external flow storage. It provides a buffer layer that decouples the scalability benefits of on-demand retrieval from the reliability requirements of retry operations. The intermediary holds flow instances temporarily, allowing the system to scale while ensuring flows remain available for error handling scenarios.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If flow instances are stored in memory to enable retry operations, then error handling capability is improved, but memory resource consumption increases

Engineering Contradiction:
Improveerror handling capabilityVSAvoidmemory resource consumption
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The system applies local quality by storing flow instances selectively in memory based on specific criteria rather than universally. Flow instances are loaded into the flow instance store when certain conditions are met (e.g., when they are about to be processed or when retry scenarios are anticipated). This selective storage approach provides error handling capability where needed while controlling overall memory consumption across the system.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The system implements partial action by maintaining only a subset of flow instances in memory at any given time, rather than storing all possible flows. The flow instance store holds flow documents that are likely to be needed for retry operations, accepting that not all flows will be cached. This partial caching strategy provides sufficient error handling capability while avoiding excessive memory resource consumption.

Inventive Principle:
Principle #16Partial or excessive action

3Ease of operation

If the system deletes failed events from the event queue to maintain queue cleanliness, then event queue management is simplified, but information about failure reasons is lost

Engineering Contradiction:
Improveevent queue managementVSAvoidfailure reason information
Core Design Contradiction:
Ease of operationVSLoss of information

Solution Approach 1:

The system applies copying by creating and storing copies of failed event data in the dead letter queue before deleting them from the main event queue. When an event fails processing, its data including failure reasons is copied to the dead letter queue for later analysis. This allows the main event queue to be kept clean and simple for active event management, while preserving failure information separately for diagnostic purposes.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The system extracts failure reason information from failed events and stores it separately in the dead letter queue. By taking out the failure data from the main event processing flow and placing it in a dedicated failure storage area, the system simplifies event queue management for successful events while preserving failure information in a separate location where it can be analyzed without interfering with normal event processing.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS10838845B2Processing failed events on an application server
Publication Date: 2020.11.17 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US10838845B2 patent drawing
  • US10838845B2 patent drawing
  • US10838845B2 patent drawing

AI summary

The present invention is a method and system for an application server to process failed events of a predetermined software flow. An event generator generates an event to include event data and a related processing flow of a software application which processes the event. Each processing flow has a unique flow ID. An event queue is populated with events, and the processing flow is processed by an event processor. When an event fails, the application server deletes the event and its related processing flow from the event queue, then inserts and links the failed event, its related software application and processing flow, and one or more reasons for failure into a failed event queue.