Feature Flags

The demo provides several feature flags that you can use to simulate different scenarios. These flags are managed by flagd, a simple feature flag service that supports OpenFeature. Flag values are stored in the src/flagd/demo.flagd.json file. To enable a flag, change the defaultVariant value in the config file for a given flag to “on”.

Feature FlagService(s)Description
adServiceFailureAd ServiceGenerate an error for GetAds 1/10th of the time
adServiceManualGcAd ServiceTrigger full manual garbage collections in the ad service
adServiceHighCpuAd ServiceTrigger high cpu load in the ad service. If you want to demo cpu throttling, set cpu resource limits
cartServiceFailureCart ServiceGenerate an error for EmptyCart 1/10th of the time
productCatalogFailureProduct CatalogGenerate an error for GetProduct requests with product id: OLJCESPC7Z
recommendationServiceCacheFailureRecommendationCreate a memory leak due to an exponentially growing cache. 1.4x growth, 50% of requests trigger growth.
paymentServiceFailurePayment ServiceGenerate an error when calling the charge method.
paymentServiceUnreachableCheckout ServiceUse a bad address when calling the PaymentService to make it seem like the PaymentService is unavailable.
loadgeneratorFloodHomepageLoadgeneratorStart flooding the homepage with a huge amount of requests, configurable by changing flagd JSON on state.
kafkaQueueProblemsKafkaOverloads Kafka queue while simultaneously introducing a consumer side delay leading to a lag spike.
imageSlowLoadFrontendUtilizes envoy fault injection, produces a delay in loading of product images in the frontend.

Feature Flag Architecture

Please see the flagd documentation for more information on how flagd works, and the OpenFeature website for more information on how OpenFeature works, along with documentation for the OpenFeature API.