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: Workshop.md
+35-2Lines changed: 35 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -20,7 +20,7 @@ time with each exercise and don't hesitate to experiment!
20
20
21
21
## Exercise 1: Basic Feature Flags
22
22
23
-
**Goal**: Implement your first feature flag and understand the basics
23
+
**Goal**: Implement your first feature flag (without OpenFeature) and understand the basics
24
24
25
25
### What You'll Learn
26
26
@@ -58,6 +58,10 @@ time with each exercise and don't hesitate to experiment!
58
58
59
59
You should see the statistics header toggle on and off based on your feature flag value.
60
60
61
+
### Learning Outcomes
62
+
63
+
- Understand that feature flags are an application development practice that can be implemented basically (but as we'll see, can also become quite powerful and complex).
64
+
61
65
---
62
66
63
67
## Exercise 2: Introduce OpenFeature
@@ -100,6 +104,10 @@ You should see the statistics header toggle on and off based on your feature fla
100
104
You will have a basic OpenFeature integration that allows you to manage feature flags dynamically. You should
101
105
see the custom provider in action, and the feature flags should be evaluated based on the user context.
102
106
107
+
### Learning Outcomes
108
+
109
+
- Understand that OpenFeature can be powered by any underlying "backend", as long as it can resolve feature flag values.
110
+
103
111
---
104
112
105
113
## Exercise 3: Add flagd provider
@@ -146,6 +154,10 @@ You will have integrated the `flagd` provider into your OpenFeature setup, allow
146
154
dynamically using an external service. You should be able to modify flags in the `flagd.json` file and see the changes
147
155
reflected in real-time without restarting the application.
148
156
157
+
### Learning Outcomes
158
+
159
+
- Understand that flagd is an OpenFeature-compatible backend for feature flags
160
+
149
161
---
150
162
151
163
## Exercise 4: Performance Tuning with Integer Flags
@@ -192,6 +204,10 @@ reflected in real-time without restarting the application.
192
204
193
205
You'll understand how integer flags can control performance characteristics and see real-time impact on application behavior.
194
206
207
+
### Learning Outcomes
208
+
- Understand that feature flags can be used to control performance characteristics in real-time
209
+
- Understand that feature flags can have multiple types, including integers, strings, and booleans
210
+
195
211
---
196
212
197
213
## Exercise 5: Data Source Switching
@@ -236,6 +252,10 @@ You'll understand how integer flags can control performance characteristics and
236
252
237
253
You'll see how feature flags can safely control major architectural decisions and enable smooth data migrations.
238
254
255
+
### Learning Outcomes
256
+
- Understand that feature flags can be used to control major architectural decisions, such as data sources
257
+
- Understand that feature flags can be used in combination to create complex feature configurations
258
+
239
259
---
240
260
241
261
## Exercise 6: A/B Testing Implementation
@@ -252,7 +272,7 @@ You'll see how feature flags can safely control major architectural decisions an
252
272
1. Use the flag `EnableStatsHeader`
253
273
254
274
- Using the `EnableStatsHeader` flag, implement a simple A/B test
255
-
- Use the `EvaluationContext` to differentiate between users, making sure to use the `_userId` property
275
+
- Use the `EvaluationContext` to differentiate between users, making sure to use the `_userId` property as the targetingKey
256
276
- Change the localStorage value for `userId` to simulate different users
257
277
- Observe how the tabs are displayed in the web application
258
278
@@ -266,6 +286,11 @@ You'll see how feature flags can safely control major architectural decisions an
266
286
267
287
You will have implemented a basic A/B test using feature flags, allowing you to control which users see different variants of the application.
268
288
289
+
### Learning Outcomes
290
+
291
+
- Understand that feature flags can be used for A/B testing, allowing you to experiment with different user experiences
292
+
- Understand that feature flags can be used to control the behavior of the application based on user attributes
293
+
269
294
---
270
295
271
296
## Exercise 7: Flag Analytics and Monitoring using hooks
@@ -297,6 +322,10 @@ You will have implemented a basic A/B test using feature flags, allowing you to
297
322
298
323
You will have integrated telemetry for feature flags, allowing you to monitor their usage and performance in the Aspire dashboard.
299
324
325
+
### Learning Outcomes
326
+
- Understand that feature flags can be monitored and analyzed using hooks
327
+
- Understand that feature flags can be visualized in any OTEL compatible dashboard using telemetry data
328
+
300
329
---
301
330
302
331
## Extra Exercises: Advanced Targeting
@@ -310,6 +339,10 @@ You will have integrated telemetry for feature flags, allowing you to monitor th
310
339
- Implement custom hooks for feature flag evaluations
311
340
- Use hooks to log flag evaluation behavior (see https://openfeature.dev/docs/reference/concepts/hooks/)
312
341
342
+
## Extra Exercises: Event Handlers
343
+
344
+
- Add an event handler to listen to flag changes (see https://openfeature.dev/specification/sections/events)
0 commit comments