IP Library Granted Patent US 11,467,912
Granted Patent B2
US 11,467,912 · App. 17/077,466 · Granted Oct 11, 2022

Feature toggle management with application behavior point-in-time restoration using event sourcing

Inventors: Donal Carpenter (Wicklow, IE); Stephen Dunne (Dublin, IE); Arun Muthukumar (Plainsboro, NJ)
Assignee: Dell Products L.P.
G06F11/1438G06F11/0757G06F11/0772G06F11/1471G06F2201/84
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,467,912
App. No.
17/077,466
Granted
Oct 11, 2022
Kind
B2
Abstract

Techniques are provided for feature toggle management with application behavior point-in-time restoration using event sourcing. One method comprises maintaining feature toggle events for features of an application, wherein each feature toggle event comprises an indication of an event time of the respective feature toggle event for a given feature; receiving a request to execute the application with feature toggle settings associated with an indicated point-in-time; and initiating an execution of the application with the feature toggle settings associated with the indicated point-in-time by processing the feature toggle events having an event time up to the indicated point-in-time. Event sourcing techniques may be employed to store the plurality of feature toggle events for the plurality of features in an event repository. The application may consume the feature toggle events having an event time up to the indicated point-in-time and may ignore the feature toggle events having an event time after the indicated point-in-time.

Claims (32)

1. A method, comprising:

maintaining a plurality of feature toggle events for a plurality of features of an application, wherein a given feature is toggled between a plurality of feature states and wherein each feature toggle event for the given feature (i) is generated in response to a change in a feature state of the given feature and (ii) comprises: an indication of an event time of the respective feature toggle event and an indication of a particular feature state for the given feature;

receiving a request to execute the application with feature toggle settings associated with an indicated point-in-time; and

initiating an execution of the application with the feature toggle settings associated with the indicated point-in-time by processing the plurality of feature toggle events of the application having an event time before and up to the indicated point-in-time,

wherein the method is performed by at least one processing device comprising a processor coupled to a memory.

2. The method of claim 1 , wherein the maintaining employs event sourcing to store the plurality of feature toggle events for the plurality of features in an event repository.

3. The method of claim 1 , wherein the initiating the execution of the application comprises the application consuming the feature toggle events having an event time up to the indicated point-in-time to restore the application with the feature toggle settings for the indicated point-in-time.

4. The method of claim 1 , wherein the initiating the execution of the application comprises the application ignoring the feature toggle events having an event time after the indicated point-in-time.

5. The method of claim 1 , wherein the maintaining further comprises maintaining an in-memory representation of a most recent setting for each feature, and wherein the in-memory representation is interrogated by the application to one or more of: (i) determine the setting of a given feature and (ii) restart the application.

6. The method of claim 1 , wherein the processing the feature toggle events having the event time up to the indicated point-in-time further comprises processing the plurality of feature toggle events for the plurality of features of the application in time order up to the indicated point-in-time.

7. The method of claim 1 , wherein the processing the feature toggle events having the event time up to the indicated point-in-time further comprises updating each feature indicated for each processed feature toggle event using a feature toggle value indicated by each processed feature toggle event.

8. An apparatus comprising:

at least one processing device comprising a processor coupled to a memory;

the at least one processing device being configured to implement the following steps:

maintaining a plurality of feature toggle events for a plurality of features of an application, wherein a given feature is toggled between a plurality of feature states and wherein each feature toggle event for the given feature (i) is generated in response to a change in a feature state of the given feature and (ii) comprises: an indication of an event time of the respective feature toggle event and an indication of a particular feature state for the given feature;

receiving a request to execute the application with feature toggle settings associated with an indicated point-in-time; and

initiating an execution of the application with the feature toggle settings associated with the indicated point-in-time by processing the plurality of feature toggle events of the application having an event time before and up to the indicated point-in-time.

9. The apparatus of claim 8 , wherein the maintaining employs event sourcing to store the plurality of feature toggle events for the plurality of features in an event repository.

10. The apparatus of claim 8 , wherein the initiating the execution of the application comprises the application consuming the feature toggle events having an event time up to the indicated point-in-time to restore the application with the feature toggle settings for the indicated point-in-time.

11. The apparatus of claim 8 , wherein the initiating the execution of the application comprises the application ignoring the feature toggle events having an event time after the indicated point-in-time.

12. The apparatus of claim 8 , wherein the maintaining further comprises maintaining an in-memory representation of a most recent setting for each feature, and wherein the in-memory representation is interrogated by the application to one or more of: (i) determine the setting of a given feature and (ii) restart the application.

13. The apparatus of claim 8 , wherein the processing the feature toggle events having the event time up to the indicated point-in-time further comprises processing the plurality of feature toggle events for the plurality of features of the application in time order up to the indicated point-in-time.

14. A non-transitory processor-readable storage medium having stored therein program code of one or more software programs, wherein the program code when executed by at least one processing device causes the at least one processing device to perform the following steps:

maintaining a plurality of feature toggle events for a plurality of features of an application, wherein a given feature is toggled between a plurality of feature states and wherein each feature toggle event for the given feature (i) is generated in response to a change in a feature state of the given feature and (ii) comprises: an indication of an event time of the respective feature toggle event and an indication of a particular feature state for the given feature;

receiving a request to execute the application with feature toggle settings associated with an indicated point-in-time; and

initiating an execution of the application with the feature toggle settings associated with the indicated point-in-time by processing the plurality of feature toggle events of the application having an event time before and up to the indicated point-in-time.

15. The non-transitory processor-readable storage medium of claim 14 , wherein the maintaining employs event sourcing to store the plurality of feature toggle events for the plurality of features in an event repository.

16. The non-transitory processor-readable storage medium of claim 14 , wherein the initiating the execution of the application comprises the application consuming the feature toggle events having an event time up to the indicated point-in-time to restore the application with the feature toggle settings for the indicated point-in-time.

17. The non-transitory processor-readable storage medium of claim 14 , wherein the initiating the execution of the application comprises the application ignoring the feature toggle events having an event time after the indicated point-in-time.

18. The non-transitory processor-readable storage medium of claim 14 , wherein the maintaining further comprises maintaining an in-memory representation of a most recent setting for each feature, and wherein the in-memory representation is interrogated by the application to one or more of: (i) determine the setting of a given feature and (ii) restart the application.

19. The non-transitory processor-readable storage medium of claim 14 , wherein the processing the feature toggle events having the event time up to the indicated point-in-time further comprises processing the plurality of feature toggle events for the plurality of features of the application in time order up to the indicated point-in-time.

20. The method of claim 1 , further comprising determining whether a given feature is enabled and executing the given feature in response to determining that the given feature is enabled.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (054475/0523) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 060332/0664 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (054475/0434) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 060332/0740 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (054475/0609) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 062021/0570 →
RELEASE OF SECURITY INTEREST AT REEL 054591 FRAME 0471 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0463 →
SECURITY INTEREST Recorded Nov 18, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 054475/0609 →
SECURITY INTEREST Recorded Nov 18, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 054475/0434 →
SECURITY INTEREST Recorded Nov 18, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 054475/0523 →
SECURITY AGREEMENT Recorded Nov 13, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 054591/0471 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 22, 2020
From: CARPENTER, DONAL; DUNNE, STEPHEN; MUTHUKUMAR, ARUN
To: DELL PRODUCTS L.P.
Reel/Frame 054140/0039 →