Multi-layer data cache to prevent user experience interrupts during feature flag management

Inventors

Xiao, Ming • Ochu, Kingsley

Assignees

Brex Inc

Interested in licensing this patent?

MTEC can help explore whether this patent might be available for licensing for your application.

Publication Number

US-11829757-B2

Patent

Publication Date

2023-11-28

Expiration Date


Abstract

There are provided systems and methods for a multi-layer cache to prevent user experience interrupts during feature flag management. A service provider may provide applications to computing devices of users including mobile applications. Use and availability of features in an application may be configured using feature flags, however, change of these feature flags may initiate an application refresh that affects user experiences with the application. To prevent interruptions, a multi-layer data cache may be used where feature flag data for the feature flags may initially be loaded, after a time period, to a first layer cache that is not used to update the application. When conditions exist for updating the application without affecting the user experience, such as if the user is no longer using a workflow, the feature flag data may be loaded to a second layer cache. The second layer cache may then be used for updating.

Core Innovation

The invention detects an application on a computing device being brought to a foreground of an operating system interface, and determines that a first amount of time has expired since feature flags for the application were last fetched from a service provider. The feature flags are associated with application features provided through the application on the computing device. The invention then fetches feature flag data from a computing system of the service provider and stores the feature flag data in a first layer application cache for the application on the computing device, where the first layer application cache comprises one of a persistent or a semi-persistent cache.

The invention further determines that the application is moved to a background of the operating system interface at a first time, and detects that the application is brought back to the foreground of the operating system interface at a second time. It determines a second amount of time between the first time and the second time, and determines whether to execute a deployment of the feature flag data based on the second amount of time. The deployment utilizes a second layer application cache for the application on the computing device.

When the second amount of time meets or exceeds a threshold amount of time, the invention executes the deployment using the second layer application cache, refreshes the feature flags and the application, which includes refreshing the application to a home screen interface. When the second amount of time is below or at the threshold amount of time, the invention determines not to execute the deployment and retains the feature flag data in the first layer application cache independent of the second layer application cache. The invention also allows determining whether to deploy based on whether the application is in a data processing flow, including pausing refreshing the feature flags during a data processing flow.

Claims Coverage

The independent claims cover a timed, multi-layer caching and deployment approach for feature flags on a computing device when an application transitions between foreground and background, using a first layer persistent or semi-persistent cache and a second layer cache for deployment. The claims include at least five inventive refinements across the dependent claims, including threshold-based deployment, retention when below threshold, cache separation behavior, refresh control tied to data processing flow context, and feature-flag associations with application presentation and processing contexts.

Foreground detection of feature-flag update eligibility

Detecting an application on a computing device being brought to a foreground of an operating system interface; determining that a first amount of time has expired since feature flags for the application were last fetched from a service provider.

Fetching feature-flag data and storing in a first layer persistent or semi-persistent cache

Fetching feature flag data from a computing system of the service provider and storing the feature flag data in a first layer application cache for the application on the computing device, wherein the first layer application cache comprises one of a persistent or a semi-persistent cache.

Background-to-foreground timing decision for deployment using a second layer application cache

Determining the application being moved to a background of the operating system interface at a first time; detecting that the application is brought back to the foreground at a second time; determining a second amount of time between the first time and the second time; determining whether to execute a deployment of the feature flag data based on the second amount of time, wherein the deployment utilizes a second layer application cache.

Threshold-based deployment, refresh, and home screen interface update

When the second amount of time meets or exceeds a threshold amount of time, executing the deployment using the second layer application cache, refreshing the feature flags and the application, and refreshing the application to a home screen interface.

No deployment and retention in the first layer cache when below or at threshold

When the second amount of time is below or at a threshold amount of time, determining not to execute the deployment and retaining the feature flag data in the first layer application cache independent of the second layer application cache.

Refresh control based on data processing flow

Determining whether to deploy the feature flag data based on whether the application is in a data processing flow, including pausing refreshing the feature flags during a data processing flow.

Second layer in-memory cache behavior independent of first layer update

The second layer application cache updates the feature flags independently of updating from the first layer cache, where the first layer cache is persistent or semi-persistent and the second layer cache is in-memory.

Feature-flag association to feature banners, data processing flows, processing requests, and presentation

The feature flags are associated with at least one of feature banners, data processing flows, operations for data processing requests, or presentation of data in the application.

Across the independent claims, the core coverage is a two-stage timing and caching approach for feature flags tied to foreground/background transitions: fetch and store in a first layer persistent or semi-persistent cache after a first-time expiration, then decide whether to deploy using a second layer cache based on a second-time interval. Dependent claim features further control deployment and refresh during data processing flow and specify second-layer behavior and the in-application contexts to which feature flags are associated.

Stated Advantages

reducing workflow/data-loss issues from automatic feature-flag updates

preventing UX interruptions

synchronizing UI elements, banners, and features via an application refresh to a home screen interface

Documented Applications

Not explicitly described in patent.

JOIN OUR MAILING LIST

Stay Connected with MTEC

Keep up with active and upcoming solicitations, MTEC news and other valuable information.