Backend Server Caching for In-Flight Transaction Redundancy
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional server availability techniques fail to protect in-flight transaction requests, leading to service unavailability when a server fails, especially during peak utilization, resulting in users needing to re-submit requests.
Innovation Solution
A method where clients send duplicate transaction requests through multiple application servers, and the backend server processes and caches responses, ensuring that if one server fails, the cached response can be sent to the client, maintaining service availability.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If conventional server availability techniques (Active-Active or Active-Passive configuration) are used to provide redundancy of application/integration servers, then service availability is improved, but in-flight transaction requests are not protected and users still need to re-submit requests when a server fails
Solution Approach 1:
The system performs preliminary action by sending duplicate transaction requests in advance through different application servers before the actual transaction needs to be completed. This ensures that at least one request is already processed and waiting for response, protecting against server failures during peak utilization.
Solution Approach 2:
The system creates copies of transaction requests by sending identical duplicate requests through multiple application servers simultaneously. This copying approach ensures that if one server fails, the duplicate request on another server can complete successfully without requiring user re-submission.
2Reliability
If duplicate transaction requests are sent through multiple application servers, then protection against server failure is improved, but system complexity increases
Solution Approach 1:
The backend server performs multiple functions: it processes transaction requests, manages response caching, and handles duplicate request identification. This multi-functionality reduces the need for additional specialized components, thereby limiting the increase in system complexity while maintaining reliability improvements.
Solution Approach 2:
The backend server acts as an intermediary between application servers and clients, mediating the complex interactions of duplicate request handling and response caching. This centralizes complexity in a single component rather than distributing it across multiple servers, making the system easier to manage.
3Reliability
If the backend server processes and caches responses for duplicate requests, then response delivery reliability is improved, but processing overhead increases
Solution Approach 1:
The backend server applies different processing quality to different requests: full processing for first-time requests and simplified cached response delivery for duplicate requests. This local quality differentiation reduces overall processing overhead while maintaining high reliability for response delivery.
Solution Approach 2:
The system changes the state parameter of transaction responses by caching them after first processing. This parameter change from unprocessed to cached state allows subsequent duplicate requests to be handled with minimal processing, reducing energy consumption while maintaining reliability.
Data Source
AI summary
The subject matter described herein relates to protecting in-flight transaction requests, where a client device is connected via at least two application servers to a backend server device that is capable of processing redundant transaction requests originated by the client device. A first instance of a transaction request identified by a transaction identifier is received at the backend server device. The first instance of the transaction request is processed and a transaction response is sent to the client device. The transaction response identified by the transaction identifier is saved in a cache. If a subsequent instance of the transaction request is received, the cached transaction response is sent to the client device.


