Skip to main content

Unleash architecture

Unleash is designed for privacy, speed, and resilience, enabling feature flag evaluations to happen locally within your applications. The architecture provides:

  • Fast feature flag evaluations: Feature flags are evaluated within the SDKs or Unleash Edge, making evaluations incredibly fast (nanoseconds).
  • Privacy and security: No user data is shared with the Unleash instance, ensuring privacy and security.
  • High reliability: SDKs cache feature flag configuration in memory, providing high reliability.

System Overview

The Unleash system consists of several key components.

A visual overview of an Unleash system as described in the following paragraph.

The Unleash API

The Unleash API (or Unleash server) is the core service for managing feature flags, configurations, and related concepts. SDKs retrieve feature flag configurations from the API, determining which flags are enabled and what activation strategies apply.

The Unleash Admin UI

A web interface for managing feature flags, defining activation strategies, viewing analytics, configuring access roles, generating API tokens, and more.

A visual overview of an Unleash system as described in the following paragraph.

Unleash SDKs

Unleash provides both server-side and client-side SDKs for integrating feature flagging into your applications. SDKs fetch feature configurations from the Unleash API to check which features are enabled and what activation strategy to use for each feature.

SDKs cache all feature flag data in memory, applying activation strategies locally. This makes flag evaluation incredibly fast, as it is a simple function operating on local state, without the need to poll data from the database. This architecture results in a small delay (typically a few seconds, but configurable) when propagating configuration changes to your applications.

Server-side SDKs

Server-side SDKs run in backend applications and retrieve feature flag configurations using the Client API or Unleash Edge. Server-side SDKs perform the flag evaluation locally, meaning all user data is retained within the SDK.

Supported languages include: Node.js, Go, Java, Python, .NET, PHP, and more.

Client-side SDKs

Client-side SDKs are used in frontend and mobile applications. They communicate with Unleash through the Frontend API or Unleash Edge. Supported platforms include: JavaScript, React, iOS, Android, and more.

Client-side SDKs do not perform the flag evaluation locally, instead, they fetch all enabled feature flags for a given Unleash Context. The flag evaluation happens inside Unleash Edge (when using Edge), or directly within your Unleash server, when using the Frontend API.

The following table outlines where flag evaluation happens with different SDK setups.

SDK setupFeature flag evaluation
Server-side SDK + Client APIPerformed locally within the SDK.
Server-side SDK + Unleash EdgePerformed locally within the SDK.
Client-side SDK + Frontend APIPerformed by the Unleash server.
Client-side SDK + Unleash EdgePerformed by Unleash Edge.

Flag evaluation relies on the Unleash Context and may involve user data. Since server-side SDKs always perform local evaluation, your user data remains within your application and is never shared with the Unleash server.

For client-side SDKs, you can use Unleash Edge for flag evaluation to ensure that user data is not shared with the Unleash instance. You have different hosting options for both Unleash and Unleash Edge allowing you to meet any privacy requirements.

Unleash Edge

Unleash Edge is a lightweight caching layer designed to improve scalability, performance, and resilience. It sits between your SDKs and the Unleash API and handles thousands of connected SDKs without increasing the number of requests you make to your Unleash instance.

Beyond scalability, Unleash Edge also offers privacy and security benefits for client-side SDKs by performing flag evaluations without exposing sensitive data to end-users or to Unleash.

Unleash APIs

Client API

The Client API is the API used by server-side SDKs to fetch feature flag configurations and send SDK usage metrics to Unleash.

Frontend API

The Frontend API is the API used by client-side SDKs to retrieve all enabled feature flags for a given Unleash Context and send SDK usage metrics to Unleash.

Admin API

The Admin API is an API layer for managing all aspects of your Unleash instance, including creating, updating, and deleting resources, such as feature flags, activation strategies, and environments. This API is used by the Unleash Admin UI and other tools and integrations.

APIUsed byAvailable endpoints
Client APIServer-side SDKsGet all enabled feature flags for a given context, register an SDK, send SDK usage metrics.
Frontend APIClient-side SDKsGet a feature flag by name, get all feature flags, register an SDK, send SDK usage metrics.
Admin APIAdmin UI, internal tooling, third-party integrationsAccess and manage all resources within Unleash, such as context, environments, events, metrics, and users.

Get started with Unleash

To integrate Unleash, you first need an Unleash server. You can choose from:

For a deeper dive into Unleash’s architecture, check out this blog post.