Global Context Cache for Microservice Access Control
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Microservices architectures face inefficiencies in handling access requests due to the time-consuming nature of transactions and resource consumption in propagating requests to persistent storage, leading to downtime and resource inefficiency.
Innovation Solution
Implementing a global context cache with read, write, and discard caches to quickly determine if access requests will fail, allowing for immediate error return instead of propagating through the network, thereby reducing downtime and resource usage.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If access requests are propagated to persistent storage to determine failure, then accurate failure determination is achieved, but response time increases and resource consumption increases
Solution Approach 1:
The system performs preliminary actions by pre-computing and caching failure determination results in the global context cache before actual access requests occur. When a request comes in, the system checks the cache first to see if the failure determination has already been made, allowing immediate response without propagating to persistent storage.
Solution Approach 2:
The global context cache acts as an intermediary between the microservice and the persistent storage. Instead of directly querying persistent storage for every access request, the system uses the cache as a mediator that provides pre-computed failure determination results, reducing the need for direct persistent storage interactions.
2Reliability
If access requests are propagated to persistent storage, then accurate data is obtained, but resource consumption increases
Solution Approach 1:
The system performs preliminary computation of failure determinations and stores them in the global context cache. This pre-computation eliminates the need for repeated persistent storage queries for the same data, significantly reducing resource consumption while maintaining data accuracy.
Solution Approach 2:
The system creates a copy of the failure determination data in the global context cache instead of repeatedly accessing the original data in persistent storage. This copy allows multiple requests to be served from the cache without consuming additional resources from the persistent storage system.
3Reliability
If error returns are propagated through the network, then proper error handling is achieved, but downtime increases
Solution Approach 1:
The system pre-determines potential failures and caches these determinations in the global context cache. When an access request comes in that would result in an error, the system can immediately return the pre-determined error from the cache without needing to propagate through the network to persistent storage, significantly reducing downtime.
4Loss of time
If global context cache is implemented, then response time is reduced and resource consumption is lowered, but system complexity increases
Solution Approach 1:
The global context cache serves multiple functions: it caches failure determinations, reduces network traffic, decreases resource consumption, and provides fast error returns. By consolidating these multiple functions into a single cache mechanism, the system achieves performance improvements without proportionally increasing complexity.
Data Source
AI summary
Disclosed embodiments provide features for the architecture of microservices. A global context cache is created for a microservice environment that is accessible from multiple deployed microservices. Data from various customers/applications can be aggregated to establish a determination of when a read or write access would fail due to permissions, and/or other condition such as existence or non-existence of certain data. In such situations, an error can be returned from the global context cache in much less time than if the access request propagated throughout the computer network to the persistent storage. In this way, disclosed embodiments reduce downtime and save money for organizations, and increase the efficiency of utilization of computer resources.


