We are so happy to finally announce that GO Feature Flag v1.0.0 is released. 🎉 🥳 🚀
It was a long journey before this release but we are happy to propose you an even better experience with feature flags always keeping simplicity in mind and building a lightweight solution.
Our goal is still the same, we want you to experience the world of feature flags with a lightweight self-hosted solution.
With this new version you will now be able to enhance your usage of feature flagging with opening the creation of more complex and more advance toggles.
What is changing?
Flag configuration format
The main change is the format of your flags configuration.
After using the version
v0.x.x for quite some time we notice some limitation on the way our flag configuration was designed.
It was hard to return more than 2 different values with the same flag and we wanted to find a better way to represent our flags to be more extensible.
The new representation of the flag is a bit more verbose but allows a lot more possibility in the long term, being able to create more advanced flag.
In the previous versions the flag representation was looking like this:
rule: key eq "random-key"
As you can see on this example you can only have a value for the
true variation and for the
false variation, the
defaultvariation was applying if the user was not part of the
The same flag in the new format will looks like this:
- query: key eq "random-key"
With the new format you have an unlimited number of variation possible you can define but also more than one rule for a specific flag.
It allows to target different types of users with different values for the same feature flag.
Let’s take a real life example, we want to get the background color for our website based on this criterias:
prousers should have a red background
enterpriseusers should have a green background
- 40% of the
freeusers should have a grey background and 60% a yellow background
- other types of user have a white background
We can come-up with a flag, the configuration will look like this:
- query: type eq "pro"
- query: type eq "enterprise"
- query: type eq "free"
As you can see we can have a way more advanced flag configuration with this new format. This format is solving all the limitation we had with the version
v0.x.x of GO Feature Flag.
Migrate from v0.x.x to v1.x.x
First of all you should know that all flags from the version
v0.x.x are still compatible with this new version of GO Feature Flag. We made it possible to reduce the disagreement to have to convert all your flag directly.
BUT we encourage you to migrate your flag to the new version and for this we have created a tool called
go-feature-flag-migration-cli to convert flags in
v0.x.x format to
The easiest way to use it is probably to use our docker image like this:
docker run \
-v $(pwd)/your/configuration_folder:/config \
We use the opportunity of the
v1.0.0 to revamp our documentation and to highlight how you can use GO Feature Flag in 2 different modes.
- The GO module, this is where we started and this is the core of what we propose. In the documentation you will find all the information on how to use the module into your GO project.
- Using Open-Feature, the new open-source vendor agnostic standard for feature flags. You can use the
relay-proxyour server component that allows to use GO Feature Flag with multiple languages (for now we support
.Net). In the documentation you will find how to use the GO Feature Flag providers in combination with the Open Feature SDKs.
Our old flag editor was not compatible anymore with the new
v1.0.0 flag format.
So we decided to restart our flag editor from scratch and to allow the possibility to create flags configuration from a simple UI.
For now it is a tiny UI that make your life easier, but the goal is to evolve it more and more to be the place where you want to go to build your new feature flags.
What has not changed?
Yes a lot of things have changed but our internals are solids and we have ensure to be consistent with the previous versions.
Our main points of attention where the following:
- User segmentation is similar between
v1.0.0meaning that if a user was affected by a flag (in a percentage for example) he will continue to be in the same cohort.
exportershave not changed and are still working exactly the same way as before.
- You can continue using GO Feature Flags with your old flags.
- Moving to the version
v1.0.0is transparent and you just have to change the version.
- You can still use our advance rollout capabilities such as experimentation, scheduled rollout, progressive rollout …
Feedbacks is our only way to evolve GO Feature Flag, so please contact us to give us any feedback.