IP Library Granted Patent US 11,526,337
Granted Patent B2
US 11,526,337 · App. 17/186,300 · Granted Dec 13, 2022

Systems and methods for consistent feature flag evaluation

Inventors: Francisco Javier Cano Munoz (Sydney, AU); Jimmy Li (Sydney, AU); Houda Chehab (Sydney, AU); Rob Sangster (Sydney, AU)
Assignees: ATLASSIAN PTY LTD.; ATLASSIAN US, INC.
G06F8/43G06F8/71G06F9/30094
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,526,337
App. No.
17/186,300
Granted
Dec 13, 2022
Kind
B2
Abstract

Described herein is a computer implemented method. The method comprises executing an application defining a feature flag, the execution of the application being associated with a user identifier. The method further comprises determining if version data associated with the feature flag and user identifier is stored in a local data store. In response determining that the version data associated with the feature flag and user identifier is stored in the local data store an evaluation request is generated that includes the version data and the user identifier. The evaluation request is then communicated to a feature flag evaluation service.

Claims (79)

1. A computer implemented method comprising:

executing an application defining a feature flag, the execution of the application being associated with a user identifier;

determining if version data associated with the feature flag and the user identifier is stored in a local data store;

in response to determining that the version data associated with the feature flag and the user identifier is stored in the local data store:

generating an evaluation request that includes the version data and the user identifier; and

communicating the evaluation request to a feature flag evaluation service;

receiving an evaluation response from the feature flag evaluation service;

in accordance with a determination that the evaluation response indicates that the version data is inconsistent with reference version data associated with the feature flag and the user identifier and stored in association with the feature flag evaluation service:

retrieving a locally stored evaluation result in respect of the feature flag from the local data store; and

enabling or disabling a feature defined by the feature flag based on the locally stored evaluation result.

2. The computer implemented method of claim 1 , further comprising:

in accordance with a determination that the evaluation response includes a new evaluation result in respect of the feature flag:

retrieving the new evaluation result from the evaluation response; and

enabling or disabling the feature defined by the feature flag based on the new evaluation result.

3. The computer implemented method of claim 2 , further comprising:

storing the new evaluation result in respect of the feature flag in the local data store.

4. The computer implemented method of claim 2 , further comprising:

retrieving new version data from the evaluation response; and

storing the new version data in the local data store, the new version data being associated with the feature flag and the user identifier.

5. The computer implemented method of claim 4 , further comprising:

re-executing the application defining the feature flag, the re-execution of the application being associated with the user identifier;

generating a further evaluation request that includes the new version data and the user identifier; and

communicating the further evaluation request to the feature flag evaluation service.

6. The computer implemented method of claim 1 , wherein the version data comprises:

rule set version data which identifies a version of a rule set associated with the feature flag; and

contextual data version data which identifies a version of contextual data associated with the user identifier.

7. The computer implemented method of claim 1 , wherein:

the version data indicates a recency of the version data stored in the local data store; and

the evaluation request further includes an identifier of the feature flag.

8. A computer implemented method comprising:

receiving an evaluation request from a client, the evaluation request including a user identifier, feature flag data in respect of a feature flag, and request version data;

generating evaluation service version data based on the user identifier and the feature flag data;

determining if the request version data is more recent than the evaluation service version data; and

in response to determining that the request version data is more recent than the evaluation service version data:

generating an inconsistent version data type evaluation response that does not include an evaluation result in respect of the feature flag; and

communicating the inconsistent version data type evaluation response to the client, wherein the client is configured to, in response to receipt of the inconsistent version data type evaluation:

retrieve a locally stored evaluation result from a local data store; and

enable or disable a feature defined by the feature flag based on the locally stored evaluation result.

9. The computer implemented method of claim 8 , wherein in response to determining that the request version data is not more recent than the evaluation service version data the method further comprises:

determining an evaluation result in respect of the feature flag;

generating an evaluation results type evaluation response, the evaluation results type evaluation response including the evaluation result; and

communicating the evaluation results type evaluation response to the client.

10. The computer implemented method of claim 9 , wherein the evaluation results type evaluation response includes the evaluation service version data.

11. The computer implemented method of claim 8 , wherein:

the request version data and the evaluation service version data each include rule set version data which identifies a version of a rule set associated with the feature flag and contextual data version data which identifies a version of contextual data associated with the user identifier; and

in accordance with the version of the rule set identified in the request version data being more recent than the version of the rule set identified in the evaluation service version data, the request version data is determined to be more recent than the evaluation service version data.

12. The computer implemented method of claim 11 , wherein:

in accordance with the version of the contextual data identified in the request version data being more recent than the version of the contextual data identified in the evaluation service version data, the request version data is determined to be more recent than the evaluation service version data.

13. A computer processing system comprising:

a processing unit;

a communications interface; and

a non-transitory computer-readable storage medium storing instructions, which when executed by the processing unit, cause the processing unit to perform a method comprising:

executing an application defining a feature flag, the execution of the application being associated with a user identifier;

determining if version data associated with the feature flag and the user identifier is stored in a local data store;

in response to determining that the version data associated with the feature flag and the user identifier is stored in the local data store:

generating an evaluation request that includes the version data and the user identifier; and

communicating, via the communications interface, the evaluation request to a feature flag evaluation service

receiving, via the communications interface an evaluation response from the feature flag evaluation service;

in accordance with a determination that the evaluation response indicates that the version data is inconsistent with reference version data associated with the feature flag and the user identifier and stored in association with the feature flag evaluation service:

retrieving a locally stored evaluation result from the local data store; and

enabling or disabling a feature defined by the feature flag based on the locally stored evaluation result.

14. The computer processing system of claim 13 , wherein the method further comprises:

in accordance with a determination that the evaluation response includes a new evaluation result in respect of the feature flag:

retrieving the new evaluation result from the evaluation response; and

enabling or disabling the feature defined by the feature flag based on the new evaluation result.

15. The computer processing system of claim 14 , wherein the method further comprises:

storing the new evaluation result in respect of the feature flag in the local data store.

16. The computer processing system of claim 14 , wherein the method further comprises:

retrieving new version data from the evaluation response; and

storing the new version data in the local data store, the new version data being associated with the feature flag and the user identifier.

17. The computer processing system of claim 16 , wherein the method further comprises:

re-executing the application defining the feature flag, the re-execution of the application being associated with the user identifier;

generating a further evaluation request that includes the new version data and the user identifier; and

communicating the further evaluation request to the feature flag evaluation service.

18. The computer processing system of claim 13 , wherein the version data comprises:

rule set version data which identifies a version of a rule set associated with the feature flag; and

contextual data version data which identifies a version of contextual data associated with the user identifier.

19. The computer processing system of claim 18 , wherein the version data indicates a recency of the version data stored in the local data store.

20. The computer processing system of claim 18 , wherein the evaluation request further includes an identifier of the feature flag.

Assignments (2)
CHANGE OF NAME Recorded Aug 5, 2022
From: ATLASSIAN, INC.
To: ATLASSIAN US, INC.
Reel/Frame 061085/0690 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 17, 2021
From: ROLF, FRANCISCO JAVIER CANO MUNOZ; LI, JIMMY; CHEHAB, HOUDA; SANGSTER, ROB
To: ATLASSIAN PTY LTD.; ATLASSIAN INC.
Reel/Frame 056261/0203 →