Obviously I'd like you to use our service, but I'd rather that you find the one that best suits your business needs. There are plenty of good open source feature management systems out there. Just - whatever you do - don't fool yourself into building your own. Your time's worth more than that.
If you want a deeper argument, I wrote it up here, along with some examples of good open source systems: https://launchdarkly.com/blog/feature-management-platform-bu...
To this I'd say it totally depends on the usecase, I've seen 10s of tech teams build this badly and end up causing more harm than good, some even just static config files that require a build to change which totally defeats the point.
I think looking for an open source tool is great, to this I'd say consider the following :
- Before anything else, you'd definitely want the ability to turn the flags off per environment (dev/prod etc) without having to deploy code.
- Do you want to control who can manage features? Quite often you'd want to enable non-tech people to manage / test features.
- How scalable does it need to be? Some people might want to just not have to worry about serving thousands or millions of flags.
- Do you want to serve flags based on users or maybe even groups of users? I've seen attempts at this but then you start having to worry about setting traits and building some sort of rules engine.
Theirs was dynamic in that you could change the rules and at a given interval the connected user's app would refresh and react accordingly. It was pretty complex, I suppose, but I'd roll out my own and go to something like them if I had a lot more conditions or targets.
It's really not complicated.
Some webframeworks require an app restart for config file changes to be detected, or restart the app automatically when it detects changes to the file, so I've seen people use databases. But it tends to be an overcomplication and it's usually turned out to be a bit of a pita. It's only worth it if you're regulalrly turning the feature on and off.
Many languages also support build flags, which strips the extra code out completely, but it's an obscure feature, unless you write libraries, that can confuse other programmers.
KISS, you most likely don't need to use an external feature flag "hadron collider".
[1] https://www.martinfowler.com/articles/feature-toggles.html
If it's a SaaS, how does your app function if the SaaS is unavailable?
https://github.com/BulletTrainHQ
We'd love feedback!