The unleash architecture comprises three parts:

1. Unleash API – The service holding all feature toggles and their configurations. Configurations declare which activation strategies to use and which parameters they should get.

2. Unleash Admin UI – The dashboard used to manage feature toggles, define new strategies, look at metrics, audit logs, etc.

3. Unleash SDK – Used by clients to check if a feature is enabled or disabled. The SDK also collects metrics and sends them to the Unleash API. Activation Strategies are also implemented in the SDK. 

unleash architecture
System overview

The Unleash architecture is designed with performance, resilience, privacy and extensibility in mind. The Unleash Client SDK polls the Unleash API at regular interval and caches all feature toggles locally. The interval is easily configurable from the client side.

Performance

In order to be fast, the client SDK caches all feature toggles and their current configuration in memory. The activation strategies are also implemented and evaluated in the SDK. This makes it really fast to check if a toggle is on or off because it is just a simple function operating on local state, without the need to poll data from the database.

Resilience

If the unleash API becomes unavailable for a short amount of time, the cache in SDK will minimize the effect. The client will not be able to get updates when the API is unavailable, but the SDK will keep running with the last known state. The SDK also persists the latest known state to a local file at the instance where the client is running. It will persist a local copy every time the client detects changes from the API.

Privacy

Because the toggle evaluations happens in the Client SDK running on the client side the unleash architecture also guarantees the privacy aspect. None of the clients user data is shared with the Unleash API. This makes us confident to state that we are GDPR compliant.

Extensibility

Unleash is shipped with a few typical activation strategies out of the box. However most companies have different needs and want to segment their users differently. This is why you are able to extend Unleash with custom strategies – this is core to the unleash architecture. Some clients want to target specific customers, others want to target specific regions. Unleash allows you to fully customise your roll-out strategy. 


One thing customers often want is to also use feature flags in their native apps. This can be solved with help of The Unleash Proxy.