logoalt Hacker News

We've built an open-source feature flag server for 11 years

95 points • by ivarconr • today at 11:40 AM • 60 comments • view on HN

Comments

sgt • today at 1:00 PM

Had a look at their website [1]. Initial thoughts: this is a bit ridiculous, I can just build that myself. And in fact, I have done already.

Thoughts after about 3 minutes of browsing: OK, this actually makes sense and I see why people would pay for this. The value proposition is definitely there

[1] https://www.getunleash.io/

➕ show 3 replies
0x70dd • today at 12:27 PM

Yesterday I saw that LaunchDarkly is a $3B company. How crazy is that?!

➕ show 3 replies
jonhohle • today at 1:41 PM

Are most feature flag systems really just simple Boolean checks like this with no feedback loop? In 2009 Amazon’s equivalent supported multi-variate flags (run test with more than 2 options), a feedback loop for performance/attribution, and weighting. I don’t see any of that on the unleash home page, but also haven’t seen it in other feature config systems either.

➕ show 3 replies
hmokiguess • today at 2:48 PM

This domain needs some better ontology and taxonomy, there's so many overlapping and conflated terms whenever I hear about it. To name a few:

- Feature Flags used as Configs;

- Configs used as Feature Flags;

- Live Ops, Control Groups, Experiments, Analytics, and more bundled as "extras" to Feature Flags as if they were the right parent term;

I think classical systems/engineering see feature flags as boolean state in some data store, but these PaaS are pushing it as a new thing and struggling with marketing.

I wish they took the gaming companies lesson and started using the term "Live Ops"

➕ show 2 replies
linesofcode • today at 2:52 PM

Cool! Feature flags are great when you need them. I’ve seen so many different implementations of flags over the years. Even made one myself couple years ago which uses a GitHub issue (and a list of checkboxes) as a persistent store for maintaining and toggling with flags. https://github.com/TimMikeladze/next-flag

Thomaschaaf • today at 2:31 PM

OpenFeature (https://openfeature.dev/) is very similar and backed by CNCF.

➕ show 1 reply
joaohaas • today at 2:26 PM

Literally all their examples can be replaced by some sort of:

    if redis_client.get("staging.feature-flag"):
        ...
For frontend you add an endpoint that exposes this value.

I guess their frontend for managing these is 'nice', but at the end of the day it's a static page that sets flags on redis.

➕ show 2 replies
selinajing1001 • today at 3:55 PM

open-source = FIRE

anonymous908213 • today at 1:08 PM

> Release, experiment, and kill anything AI ships

The only appealing marketing I've seen in the past three years

➕ show 1 reply
yuppiepuppie • today at 12:04 PM

Configuration as a Service companies must be a having a tough time these days...

I couldnt imagine a lot of teams are debating anymore whether to build their own or use an off the shelf product like this. The former being a straight forward task for an LLM. And the latter being a point of failure/attack for any one want to mess with the core foundations of a product.

➕ show 4 replies
ltbarcly3 • today at 2:50 PM

Wow a server that can help you manage your booleans. That's so useful. Let me just add one more thing to my infrastructure so my list of booleans can be managed.

➕ show 1 reply
sneak • today at 2:39 PM

“open source” but it’s the nonfree AGPL, and naturally RBAC and SSO are behind a paywall. I’m tired of fake open source projects that just want the street cred and free marketing.

➕ show 1 reply
ivarconr • today at 11:42 AM

Hi HN, I'm Ivar, creator of Unleash.

Unleash started in 2014 as an internal tool at my company at the time, because we wanted to ship to production continuously without big-bang releases. It's an Open-Source feature flag platform with SDKs for >25 languages.

A few design choices that might be interesting:

- Local evaluation: server-side SDKs fetch the flag config and evaluate in-process, so user data never leaves your app and a flag check is a memory lookup, not a network call.

- Shared Rust engine (Yggdrasil): the evaluation logic is written once in Rust and embedded in the SDKs, so behaviour is the same across languages.

- Unleash Edge: a Rust proxy/cache for frontend and edge clients at scale. (Commercial)

- OpenFeature: supported if you don't want to lock into our SDKs.

➕ show 1 reply
arbor-group • today at 2:58 PM

[flagged]

patryk_builds • today at 2:04 PM

[flagged]