From 28df5dcb311a72e8ebf8567afba3d368cba89a71 Mon Sep 17 00:00:00 2001 From: Thomas Heartman Date: Fri, 4 Mar 2022 12:56:16 +0100 Subject: [PATCH 1/3] docs: add offline headings / rough skeleton --- website/docs/sdks/index.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/website/docs/sdks/index.md b/website/docs/sdks/index.md index bebee77431..0142471309 100644 --- a/website/docs/sdks/index.md +++ b/website/docs/sdks/index.md @@ -117,9 +117,13 @@ Here's some of the fantastic work our community has done to make Unleash work in - [uekoetter.dev/unleash-client-dart](https://pub.dev/packages/unleash) (Dart) - _...your implementation for your favorite language._ -## Implement your own SDK {#implement-your-own-sdk} +### Implement your own SDK {#implement-your-own-sdk} If you can't find an SDK that fits your need, you can also develop your own SDK. To make implementation easier, check out these resources: - [Unleash Client Specifications](https://github.com/Unleash/client-specification) - Used by all official SDKs to make sure they behave correctly across different language implementations. This lets us verify that a gradual rollout to 10% of the users would affect the same users regardless of which SDK you're using. - [Client SDK overview](../client-specification) - A brief, overall guide of the _Unleash Architecture_ and important aspects of the SDK role in it all. + +## How the SDKs work + +### Working offline From 304e95f9d7d5ce30c97276130c03ee60a1f99399 Mon Sep 17 00:00:00 2001 From: Thomas Heartman Date: Fri, 4 Mar 2022 13:37:59 +0100 Subject: [PATCH 2/3] docs: add working offline section to the SDKs doc --- website/docs/sdks/index.md | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/website/docs/sdks/index.md b/website/docs/sdks/index.md index 0142471309..feb8208a56 100644 --- a/website/docs/sdks/index.md +++ b/website/docs/sdks/index.md @@ -124,6 +124,17 @@ If you can't find an SDK that fits your need, you can also develop your own SDK. - [Unleash Client Specifications](https://github.com/Unleash/client-specification) - Used by all official SDKs to make sure they behave correctly across different language implementations. This lets us verify that a gradual rollout to 10% of the users would affect the same users regardless of which SDK you're using. - [Client SDK overview](../client-specification) - A brief, overall guide of the _Unleash Architecture_ and important aspects of the SDK role in it all. -## How the SDKs work +## Working offline -### Working offline +Once they have been initialised, all Unleash clients will continue to work perfectly well without an internet connection or in the event that the Unleash Server has an outage. + +Because the SDKs and the Unleash Proxy cache their feature toggle states locally and only communicate with the Unleash server (in the case of the server-side SDKs and the Proxy) or the Proxy (in the case of front-end SDKs) at predetermined intervals, a broken connection only means that they won't get any new updates. + +### Bootstrapping + +By default, all SDKs reach out to the Unleash Server at startup to fetch their toggle configuration. Additionally some of the server-side SDKs and the Proxy (see the above [compatibility table](#server-side-sdk-compatibility-table)) also support *bootstrapping*, which allows them to get their toggle configuration from a file, the environment, or other local resources. These SDKs can work without any network connection whatsoever. + +Bootstrapping is also supported by the following front-end client SDKs: +- [the JavaScript proxy client](/sdks/proxy-javascript) +- [the React Proxy client](/sdks/proxy-react) +- [the Android proxy client](/sdks/proxy-react) From c0985ad08dfc789f6263c62e2c5728a01b61e676 Mon Sep 17 00:00:00 2001 From: Thomas Heartman Date: Fri, 4 Mar 2022 13:43:02 +0100 Subject: [PATCH 3/3] docs: be explicit about what happens if an SDK doesn't have toggles. --- website/docs/sdks/index.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/website/docs/sdks/index.md b/website/docs/sdks/index.md index feb8208a56..fb7840fb75 100644 --- a/website/docs/sdks/index.md +++ b/website/docs/sdks/index.md @@ -130,6 +130,8 @@ Once they have been initialised, all Unleash clients will continue to work perfe Because the SDKs and the Unleash Proxy cache their feature toggle states locally and only communicate with the Unleash server (in the case of the server-side SDKs and the Proxy) or the Proxy (in the case of front-end SDKs) at predetermined intervals, a broken connection only means that they won't get any new updates. +Unless the SDK supports [bootstrapping](#bootstrapping) it *will* need to connect to Unleash at startup to get its initial feature toggle data set. If the SDK doesn't have a feature toggle data set available, all toggles will fall back to evaluating as disabled or as the specified default value (in SDKs that support that). + ### Bootstrapping By default, all SDKs reach out to the Unleash Server at startup to fetch their toggle configuration. Additionally some of the server-side SDKs and the Proxy (see the above [compatibility table](#server-side-sdk-compatibility-table)) also support *bootstrapping*, which allows them to get their toggle configuration from a file, the environment, or other local resources. These SDKs can work without any network connection whatsoever.