v1.19.0 #602
Closed
heitorlessa
started this conversation in
Show and tell
v1.19.0
#602
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Summary
This release highlights 1/ a brand new Feature Flags utility, 2/ auto-disable Tracer in non-Lambda environments to ease unit testing, 3/ API Gateway event handler now supports a custom JSON serializer, and a number of documentation improvements & bugfixes.
We hope you enjoy this new utility as much as we did working on it!!
New Feature Flags utility in Beta
You might have heard of feature flags when:
This new utility makes this entire process so much easier by fetching feature flags configuration from AWS AppConfig, and evaluating contextual values against rules you defined to decide whether a feature should be enabled.
Let's dive into the code to better understand what this all means.
Evaluating whether a customer should have access to premium features
Sample feature flag configuration in AWS AppConfig
Notice we have
premium_features
flag that will conditionally be available for premium customers, and a static feature flag namedten_percent_off_campaign
that is disabled by default.Sample invocation event for this function
There's a LOT going on here. Allow me to break it down:
AppConfigStore
using AWS AppConfig values created via Infrastructure as code (available on docs)FeatureFlags
and use our previously instantiatedAppConfigStore
evaluate
method and pass the name of the premium feature, along with our contextual information our rules should run against, and a sentinel value to be used in case service errors happenpremium_features
and evaluate whethertier
key has the valuepremium
True
which is then stored ashas_premium_features
variableBut what if you have multiple feature flags and only want all enabled features?
We've got you covered! You can use
get_enabled_features
to make a single call to AWS AppConfig and return a list of all enabled features at once.But hang on, why Beta?
We want to hear from you on the UX and evaluate how we can make it easier for you to bring your own feature flag store such as Redis, HashiCorp Consul, etc.
When would you use feature flags vs env variables vs Parameters utility?
Environment variables. For when you need simple configuration that will rarely if ever change, because changing it requires a Lambda function deployment.
Parameters utility. For when you need access to secrets, or fetch parameters in different formats from AWS System Manager Parameter Store or Amazon DynamoDB.
Feature flags utility. For when you need static or feature flags that will be enable conditionally based on the input and on a set of rules per feature whether that applies for all customers or on a per customer basis.
In both Parameters and Feature Flags utility you can change their config without having to change your application code.
Changes
Changes
🌟New features and non-breaking changes
📜 Documentation updates
🐛 Bug and hot fixes
🔧 Maintenance
This release was made possible by the following contributors:
@am29d, @dependabot, @dependabot[bot], @dreamorosi, @heitorlessa, @michaelbrewer, @risenberg-cyberark and @pcolazurdo
This discussion was created from the release v1.19.0.
Beta Was this translation helpful? Give feedback.
All reactions