Skip to content

Commit 1531338

Browse files
toddbaertaskpt
andauthored
recommendations (#1)
Signed-off-by: André Silva <[email protected]> Co-authored-by: André Silva <[email protected]>
1 parent baabef7 commit 1531338

File tree

1 file changed

+35
-2
lines changed

1 file changed

+35
-2
lines changed

Workshop.md

Lines changed: 35 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ time with each exercise and don't hesitate to experiment!
2020

2121
## Exercise 1: Basic Feature Flags
2222

23-
**Goal**: Implement your first feature flag and understand the basics
23+
**Goal**: Implement your first feature flag (without OpenFeature) and understand the basics
2424

2525
### What You'll Learn
2626

@@ -58,6 +58,10 @@ time with each exercise and don't hesitate to experiment!
5858

5959
You should see the statistics header toggle on and off based on your feature flag value.
6060

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+
6165
---
6266

6367
## Exercise 2: Introduce OpenFeature
@@ -100,6 +104,10 @@ You should see the statistics header toggle on and off based on your feature fla
100104
You will have a basic OpenFeature integration that allows you to manage feature flags dynamically. You should
101105
see the custom provider in action, and the feature flags should be evaluated based on the user context.
102106

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+
103111
---
104112

105113
## Exercise 3: Add flagd provider
@@ -146,6 +154,10 @@ You will have integrated the `flagd` provider into your OpenFeature setup, allow
146154
dynamically using an external service. You should be able to modify flags in the `flagd.json` file and see the changes
147155
reflected in real-time without restarting the application.
148156

157+
### Learning Outcomes
158+
159+
- Understand that flagd is an OpenFeature-compatible backend for feature flags
160+
149161
---
150162

151163
## Exercise 4: Performance Tuning with Integer Flags
@@ -192,6 +204,10 @@ reflected in real-time without restarting the application.
192204

193205
You'll understand how integer flags can control performance characteristics and see real-time impact on application behavior.
194206

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+
195211
---
196212

197213
## Exercise 5: Data Source Switching
@@ -236,6 +252,10 @@ You'll understand how integer flags can control performance characteristics and
236252

237253
You'll see how feature flags can safely control major architectural decisions and enable smooth data migrations.
238254

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+
239259
---
240260

241261
## Exercise 6: A/B Testing Implementation
@@ -252,7 +272,7 @@ You'll see how feature flags can safely control major architectural decisions an
252272
1. Use the flag `EnableStatsHeader`
253273

254274
- 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
256276
- Change the localStorage value for `userId` to simulate different users
257277
- Observe how the tabs are displayed in the web application
258278

@@ -266,6 +286,11 @@ You'll see how feature flags can safely control major architectural decisions an
266286

267287
You will have implemented a basic A/B test using feature flags, allowing you to control which users see different variants of the application.
268288

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+
269294
---
270295

271296
## 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
297322

298323
You will have integrated telemetry for feature flags, allowing you to monitor their usage and performance in the Aspire dashboard.
299324

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+
300329
---
301330

302331
## Extra Exercises: Advanced Targeting
@@ -310,6 +339,10 @@ You will have integrated telemetry for feature flags, allowing you to monitor th
310339
- Implement custom hooks for feature flag evaluations
311340
- Use hooks to log flag evaluation behavior (see https://openfeature.dev/docs/reference/concepts/hooks/)
312341

342+
## Extra Exercises: Event Handlers
343+
344+
- Add an event handler to listen to flag changes (see https://openfeature.dev/specification/sections/events)
345+
313346
---
314347

315348
## Troubleshooting

0 commit comments

Comments
 (0)