Hacker News new | ask | show | jobs
by jameshush 813 days ago
Don't build this in-house if you can help it.

I worked at an adtech company that had our own feature flag system built. Absolute pain to work with. To be fair, it had been built 6 years prior, and I worked there 4 years ago, so there were less off the shelve solutions at the time.

Switched to a company that used an off the shelve solution and it was 100x easier to work with.

1 comments

Can you elaborate on 'the pain' of using in-house feature flags?

I am genuinely curious how essentially a boolean lookup can be hard to work with.

You want more than a boolean flag.

You want to be able to enable features for certain customers. For example, you might want to roll out a feature to only the US or only English speaking users because you haven't internationalized it yet. Or you might want to enable it for select customers. Or all sorts of other examples.

You may also want the ability to gradually roll out a new feature over time. This lets you test in small scale and also lets you ramp up load on new backend services.

You can also schedule features to be released in advance. This helps you align releases with things like marketing or customer service training.

I only hit on a few points, but you can see it's a lot more than boolean flags.

Possible to have a feature requiring a dependency update that may be mutually exclusive with the previous dependency graph of the former feature set?
That's not really the domain of feature flags in their typical use case. That sounds like you would need to deploy multiple versions of the app and switch between them at the load balancer level or something like that.
"We want to test modifying two lines of this header bidding library against 5% of traffic ONLY IF we bought that traffic from an Outbrain Ad, not a Facebook Ad. If revenue increases after 24 hours we'll enable it on traffic we bought from Outbrain and Facebook ads, but NOT Taboola. Oh and we only want to run it against international traffic, but only if their language setting IS NOT English."

Stuff starts getting complicated.