Skip to content

Commit af050d3

Browse files
chore: update sdk readmes
Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
1 parent 781a064 commit af050d3

File tree

16 files changed

+116
-33
lines changed

16 files changed

+116
-33
lines changed

docs/reference/technologies/client/kotlin.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ This content has been automatically generated from kotlin-sdk.
1010
Edits should be made here: https://github.com/open-feature/kotlin-sdk
1111
Once a repo has been updated, docs can be generated by running: yarn update:sdk-docs
1212

13-
Last updated at Mon Sep 08 2025 11:54:08 GMT-0400 (Eastern Daylight Time)
13+
Last updated at Wed Sep 24 2025 08:10:46 GMT+0000 (Coordinated Universal Time)
1414
-->
1515

1616
<p align="center" class="github-badges">

docs/reference/technologies/client/swift.mdx

Lines changed: 85 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ This content has been automatically generated from swift-sdk.
1010
Edits should be made here: https://github.com/open-feature/swift-sdk
1111
Once a repo has been updated, docs can be generated by running: yarn update:sdk-docs
1212

13-
Last updated at Mon Sep 08 2025 11:54:08 GMT-0400 (Eastern Daylight Time)
13+
Last updated at Wed Sep 24 2025 08:10:46 GMT+0000 (Coordinated Universal Time)
1414
-->
1515

1616
<p align="center" class="github-badges">
@@ -109,7 +109,7 @@ Task {
109109
|| [Hooks](#hooks) | Add functionality to various stages of the flag evaluation life-cycle. |
110110
|| [Tracking](#tracking) | Associate user actions with feature flag evaluations. |
111111
|| [Logging](#logging) | Integrate with popular logging packages. |
112-
| | [Named clients](#named-clients) | Utilize multiple providers in a single application. |
112+
| | [MultiProvider](#multiprovider) | Utilize multiple providers in a single application. |
113113
|| [Eventing](#eventing) | React to state changes in the provider or flag management system. |
114114
|| [Shutdown](#shutdown) | Gracefully clean up a provider during application shutdown. |
115115
|| [Extending](#extending) | Extend OpenFeature with custom providers and hooks. |
@@ -178,6 +178,89 @@ Logging customization is not yet available in the iOS SDK.
178178

179179
Support for named clients is not yet available in the iOS SDK.
180180

181+
### MultiProvider
182+
183+
The `MultiProvider` allows you to combine multiple feature flag providers into a single provider, enabling you to use different providers for different flags or implement fallback mechanisms. This is useful when migrating between providers, implementing A/B testing across providers, or ensuring high availability.
184+
185+
#### Basic Usage
186+
187+
```swift
188+
import OpenFeature
189+
190+
Task {
191+
// Create individual providers
192+
let primaryProvider = PrimaryProvider()
193+
let fallbackProvider = FallbackProvider()
194+
195+
// Create a MultiProvider with default FirstMatchStrategy
196+
let multiProvider = MultiProvider(providers: [primaryProvider, fallbackProvider])
197+
198+
// Set the MultiProvider as the global provider
199+
await OpenFeatureAPI.shared.setProviderAndWait(provider: multiProvider)
200+
201+
// Use flags normally - the MultiProvider will handle provider selection
202+
let client = OpenFeatureAPI.shared.getClient()
203+
let flagValue = client.getBooleanValue(key: "my-flag", defaultValue: false)
204+
}
205+
```
206+
207+
#### Evaluation Strategies
208+
209+
The `MultiProvider` supports different strategies for evaluating flags across multiple providers:
210+
211+
##### FirstMatchStrategy (Default)
212+
213+
The `FirstMatchStrategy` evaluates providers in order and returns the first result that doesn't indicate "flag not found". If a provider returns an error other than "flag not found", that error is returned immediately.
214+
215+
```swift
216+
let multiProvider = MultiProvider(
217+
providers: [primaryProvider, fallbackProvider],
218+
strategy: FirstMatchStrategy()
219+
)
220+
```
221+
222+
##### FirstSuccessfulStrategy
223+
224+
The `FirstSuccessfulStrategy` evaluates providers in order and returns the first successful result (no error). Unlike `FirstMatchStrategy`, it continues to the next provider if any error occurs, including "flag not found".
225+
226+
```swift
227+
let multiProvider = MultiProvider(
228+
providers: [primaryProvider, fallbackProvider],
229+
strategy: FirstSuccessfulStrategy()
230+
)
231+
```
232+
233+
#### Use Cases
234+
235+
**Provider Migration:**
236+
```swift
237+
// Gradually migrate from OldProvider to NewProvider
238+
let multiProvider = MultiProvider(providers: [
239+
NewProvider(), // Check new provider first
240+
OldProvider() // Fall back to old provider
241+
])
242+
```
243+
244+
**High Availability:**
245+
```swift
246+
// Use multiple providers for redundancy
247+
let multiProvider = MultiProvider(providers: [
248+
RemoteProvider(),
249+
LocalCacheProvider(),
250+
StaticProvider()
251+
])
252+
```
253+
254+
**Environment-Specific Providers:**
255+
```swift
256+
// Different providers for different environments
257+
let providers = [
258+
EnvironmentProvider(environment: "production"),
259+
DefaultProvider()
260+
]
261+
let multiProvider = MultiProvider(providers: providers)
262+
```
263+
181264
### Eventing
182265

183266
Events allow you to react to state changes in the provider or underlying flag management system, such as flag definition changes, provider readiness, or error conditions.

docs/reference/technologies/client/web/angular.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ This content has been automatically generated from js-sdk.
1010
Edits should be made here: https://github.com/open-feature/js-sdk
1111
Once a repo has been updated, docs can be generated by running: yarn update:sdk-docs
1212

13-
Last updated at Mon Sep 08 2025 11:54:09 GMT-0400 (Eastern Daylight Time)
13+
Last updated at Wed Sep 24 2025 08:10:46 GMT+0000 (Coordinated Universal Time)
1414
-->
1515

1616
<p align="center" class="github-badges">

docs/reference/technologies/client/web/index.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ This content has been automatically generated from js-sdk.
1010
Edits should be made here: https://github.com/open-feature/js-sdk
1111
Once a repo has been updated, docs can be generated by running: yarn update:sdk-docs
1212

13-
Last updated at Mon Sep 08 2025 11:54:08 GMT-0400 (Eastern Daylight Time)
13+
Last updated at Wed Sep 24 2025 08:10:46 GMT+0000 (Coordinated Universal Time)
1414
-->
1515

1616
<p align="center" class="github-badges">

docs/reference/technologies/client/web/react.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ This content has been automatically generated from js-sdk.
1010
Edits should be made here: https://github.com/open-feature/js-sdk
1111
Once a repo has been updated, docs can be generated by running: yarn update:sdk-docs
1212

13-
Last updated at Mon Sep 08 2025 11:54:08 GMT-0400 (Eastern Daylight Time)
13+
Last updated at Wed Sep 24 2025 08:10:46 GMT+0000 (Coordinated Universal Time)
1414
-->
1515

1616
<p align="center" class="github-badges">

docs/reference/technologies/server/dart.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ This content has been automatically generated from dart-server-sdk.
99
Edits should be made here: https://github.com/open-feature/dart-server-sdk
1010
Once a repo has been updated, docs can be generated by running: yarn update:sdk-docs
1111

12-
Last updated at Mon Sep 08 2025 11:54:09 GMT-0400 (Eastern Daylight Time)
12+
Last updated at Wed Sep 24 2025 08:10:47 GMT+0000 (Coordinated Universal Time)
1313
-->
1414

1515
<p align="center" class="github-badges">

docs/reference/technologies/server/dotnet.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ This content has been automatically generated from dotnet-sdk.
1010
Edits should be made here: https://github.com/open-feature/dotnet-sdk
1111
Once a repo has been updated, docs can be generated by running: yarn update:sdk-docs
1212

13-
Last updated at Mon Sep 08 2025 11:54:07 GMT-0400 (Eastern Daylight Time)
13+
Last updated at Wed Sep 24 2025 08:10:45 GMT+0000 (Coordinated Universal Time)
1414
-->
1515

1616
[![Specification](https://img.shields.io/static/v1?label=specification&message=v0.8.0&color=yellow&style=for-the-badge)](https://github.com/open-feature/spec/releases/tag/v0.8.0)

docs/reference/technologies/server/go.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ This content has been automatically generated from go-sdk.
99
Edits should be made here: https://github.com/open-feature/go-sdk
1010
Once a repo has been updated, docs can be generated by running: yarn update:sdk-docs
1111

12-
Last updated at Mon Sep 08 2025 11:54:07 GMT-0400 (Eastern Daylight Time)
12+
Last updated at Wed Sep 24 2025 08:10:45 GMT+0000 (Coordinated Universal Time)
1313
-->
1414

1515
<p align="center" class="github-badges">

docs/reference/technologies/server/java.mdx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ This content has been automatically generated from java-sdk.
99
Edits should be made here: https://github.com/open-feature/java-sdk
1010
Once a repo has been updated, docs can be generated by running: yarn update:sdk-docs
1111

12-
Last updated at Mon Sep 08 2025 11:54:07 GMT-0400 (Eastern Daylight Time)
12+
Last updated at Wed Sep 24 2025 08:10:44 GMT+0000 (Coordinated Universal Time)
1313
-->
1414

1515
<p align="center" class="github-badges">
@@ -18,8 +18,8 @@ Last updated at Mon Sep 08 2025 11:54:07 GMT-0400 (Eastern Daylight Time)
1818
</a>
1919

2020

21-
<a href="https://github.com/open-feature/java-sdk/releases/tag/v1.17.0">
22-
<img alt="Release" src="https://img.shields.io/static/v1?label=release&message=v1.17.0&color=blue&style=for-the-badge" />
21+
<a href="https://github.com/open-feature/java-sdk/releases/tag/v1.18.1">
22+
<img alt="Release" src="https://img.shields.io/static/v1?label=release&message=v1.18.1&color=blue&style=for-the-badge" />
2323
</a>
2424

2525

@@ -54,7 +54,7 @@ Note that this library is intended to be used in server-side contexts and has no
5454
<dependency>
5555
<groupId>dev.openfeature</groupId>
5656
<artifactId>sdk</artifactId>
57-
<version>1.17.0</version>
57+
<version>1.18.1</version>
5858
</dependency>
5959
```
6060

@@ -77,7 +77,7 @@ If you would like snapshot builds, this is the relevant repository information:
7777

7878
```groovy
7979
dependencies {
80-
implementation 'dev.openfeature:sdk:1.17.0'
80+
implementation 'dev.openfeature:sdk:1.18.1'
8181
}
8282
```
8383

docs/reference/technologies/server/javascript/index.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ This content has been automatically generated from js-sdk.
1010
Edits should be made here: https://github.com/open-feature/js-sdk
1111
Once a repo has been updated, docs can be generated by running: yarn update:sdk-docs
1212

13-
Last updated at Mon Sep 08 2025 11:54:07 GMT-0400 (Eastern Daylight Time)
13+
Last updated at Wed Sep 24 2025 08:10:44 GMT+0000 (Coordinated Universal Time)
1414
-->
1515

1616
<p align="center" class="github-badges">

0 commit comments

Comments
 (0)