You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardexpand all lines: website/docs/understanding-unleash/unleash-overview.md
+34-8
Original file line number
Diff line number
Diff line change
@@ -3,8 +3,8 @@ title: Unleash architecture
3
3
---
4
4
5
5
Unleash is designed for privacy, speed, and resilience, enabling feature flag evaluations to happen locally within your applications. The architecture provides:
6
-
-**Fast feature flag evaluations**: Feature flags are evaluated within the [SDKs](/reference/sdks)running in your application, making evaluations incredibly fast (nanoseconds).
7
-
-**High reliability**: There is no dependency on network calls during evaluation, providing high reliability.
6
+
-**Fast feature flag evaluations**: Feature flags are evaluated within the [SDKs](#unleash-sdks)or [Unleash Edge](#unleash-edge), making evaluations incredibly fast (nanoseconds).
7
+
-**High reliability**: With server-side SDKs, there is no dependency on network calls during evaluation, providing high reliability.
8
8
-**Privacy and security**: No user data is shared with the Unleash instance, ensuring [privacy and security](/understanding-unleash/data-collection).
9
9
10
10
## System Overview
@@ -27,30 +27,56 @@ A web interface for managing feature flags, defining activation strategies, view
27
27
28
28
Unleash provides both [server-side](/reference/sdks#server-side-sdks) and [client-side SDKs](/reference/sdks#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.
29
29
30
-
Server-side SDKs run in backend applications and retrieve feature flag configurations via the [Client API](#client-api). Supported languages include: [Node.js](/reference/sdks/node), [Go](/reference/sdks/go), [Java](/reference/sdks/java), [Python](/reference/sdks/python), [.NET](/reference/sdks/dotnet), [PHP](/reference/sdks/php), and more.
30
+
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.
31
31
32
-
Client-side SDKs are used in frontend and mobile applications. They communicate with Unleash through the [Frontend API](#frontend-api). Supported platforms include: [JavaScript](/reference/sdks/javascript-browser), [React](/reference/sdks/react), [iOS](/reference/sdks/ios-proxy), [Android](/reference/sdks/android-proxy), and more.
32
+
#### Server-side SDKs
33
33
34
-
For improved performance and scalability, SDKs can connect to the [Unleash service](#the-unleash-api)through[Unleash Edge](#unleash-edge) instead of directly using the Frontend and Client APIs.
34
+
Server-side SDKs run in backend applications and retrieve feature flag configurations via the [Client API](#client-api)or[Unleash Edge](#unleash-edge). Server-side SDKs perform the flag evaluation locally, meaning no user data is shared with the Unleash instance.
35
35
36
-
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.
36
+
Supported languages include: [Node.js](/reference/sdks/node), [Go](/reference/sdks/go), [Java](/reference/sdks/java), [Python](/reference/sdks/python), [.NET](/reference/sdks/dotnet), [PHP](/reference/sdks/php), and more.
37
+
38
+
#### Client-side SDKs
39
+
40
+
Client-side SDKs are used in frontend and mobile applications. They communicate with Unleash through the [Frontend API](#frontend-api) or [Unleash Edge](#unleash-edge). Supported platforms include: [JavaScript](/reference/sdks/javascript-browser), [React](/reference/sdks/react), [iOS](/reference/sdks/ios-proxy), [Android](/reference/sdks/android-proxy), and more.
41
+
42
+
Client-side SDKs do not perform the flag evaluation locally, instead, they fetch all enabled feature flags for a given [Unleash Context](/reference/context). The flag evaluation happens inside [Unleash Edge](#unleash-edge) (when using Edge), or directly within your Unleash server, when using the [Frontend API](#frontend-api).
43
+
44
+
The following table outlines where flag evaluation happens with different SDK setups.
| Server-side SDK + Client API | Performed **locally** within the SDK. |
49
+
| Server-side SDK + Unleash Edge | Performed **locally** within the SDK. |
50
+
| Client-side SDK + Frontend API | Performed by the **Unleash server**. |
51
+
| Client-side SDK + Unleash Edge | Performed by **Unleash Edge**. |
52
+
53
+
Flag evaluation relies on the [Unleash Context](/reference/context) and may involve user data. With server-side SDKs, user data remains within your application and is never shared with the Unleash server, whether you use the cloud or self-hosted version.
54
+
55
+
For client-side SDKs, you can retain all user data within your applications by either [self-hosting Unleash](/understanding-unleash/proxy-hosting#you-host-everything), or [self-hosting Unleash Edge](/understanding-unleash/proxy-hosting#unleash-hosts-the-api-you-host-edge).
37
56
38
57
### Unleash Edge
39
58
40
59
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.
41
60
61
+
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.
62
+
42
63
### Unleash APIs
43
64
44
65
#### Client API
45
66
46
-
The [Client API](/reference/api/unleash/client) is the API used by server-side SDKs to fetch feature flag configurations and send usage metrics to Unleash.
67
+
The [Client API](/reference/api/unleash/client) is the API used by server-side SDKs to fetch feature flag configurations and send SDK usage metrics to Unleash.
47
68
48
69
#### Frontend API
49
-
The [Frontend API](/reference/api/unleash/frontend-api) is the API used by client-side SDKs to retrieve feature flag configurations and send usage metrics to Unleash.
70
+
The [Frontend API](/reference/api/unleash/frontend-api) is the API used by client-side SDKs to retrieve all enabled feature flags for a given [Unleash Context](/reference/context)and send SDK usage metrics to Unleash.
50
71
51
72
#### Admin API
52
73
The [Admin API](/reference/api/unleash) 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](#the-unleash-admin-ui) and other tools and [integrations](/reference/integrations).
53
74
75
+
| API | Used by | Available endpoints |
76
+
|---------------|---------|---|
77
+
| Client API | Server-side SDKs | Get all enabled feature flags for a given context, register an SDK, send SDK usage metrics. |
78
+
| Frontend API | Client-side SDKs | Get a feature flag by name, get all feature flags, register an SDK, send SDK usage metrics. |
79
+
| Admin API | Admin UI, internal tooling, third-party integrations | Access and manage all resources within Unleash, such as context, environments, events, metrics, and users.
0 commit comments