Resilience is a key factor in ensuring uninterrupted service and optimal user experiences. When considering a feature flagging tool, a common concern arises: can feature flags system consistently be available, providing an assurance of uninterrupted service and continuous access to feature flags and configurations? This concern becomes particularly pivotal for mission-critical systems where service availability and uptime stands as the paramount requirement. In this blog post, we'll explore how FeatureHub achieves resilience and fault tolerance out-of-the-box and what are the mechanisms to ensure the availability of the feature flags.
Cached Feature States in SDKs
The SDKs provided by FeatureHub are engineered to cache their feature states. This design ensures that intermittent communication failures with the Edge server do not result in feature updates outages. Your applications can seamlessly operate even when facing temporary connectivity challenges.
Diverse State Loading Sources
Flexibility is a core principle of FeatureHub's resilience strategy. SDKs allow you to load their states from various sources, extending beyond the Edge server. Whether from a file system, Kubernetes secret or configmap, Redis key, S3 or Cloud Storage bucket, or a DynamoDB table, you have the freedom to choose backup locations that align with your state management requirements.
Webhook to track feature states updates
FeatureHub provides a Webhook mechanism, giving you complete control over the storage, retrieval, and backup of your feature states. This capability allows you to push state updates to your systems, defining where, when, and how your backup data is stored. You can even use this as a primary source of features data (e.g. for a static website that is regenerated for every feature change, or for an AWS Lambda that talks to S3). We also provide Webhook Utility Package that consists of a core library and destination libraries (converters). The core library transforms incoming webhooks into fully structured SDK JSON files without the need for existing clients or direct FeatureHub accessibility.
Replicable Components
Every component within FeatureHub is designed to be replicable, mitigating the risk of a single point of failure. Edge, Cache (Dacha), and the Management Repository (all are main components of FeatureHub) can be replicated to match your specific load and high availability requirements.
Cloud-Scale Tools and Integration
FeatureHub leverages proven cloud-scale tools such as NATS.io and Google PubSub, each contributing to a robust resiliency. Additionally, FeatureHub seamlessly integrates with Fastly's worldwide distributed cache, even in the Open Source version, enhancing its availability and reducing the chances of unavailability.
Fastly Integration in FeatureHub SaaS
FeatureHub SaaS integrates directly with Fastly , minimising the risk of the service unavailability. Even if in a rare event, Edge service becomes unavailable, the latest feature state can be always retrieved from Fastly cache.
In essence, FeatureHub's architecture is built for resilience. By embracing the methods described in this blog, FeatureHub allows your applications to navigate challenges, ensuring consistent availability of feature flags and configurations, and delivering a reliable user experience.
#resilience #availability #fault-tolerance #cloud-native #feature-flags
Comments