[–] sgt 1 day ago
[–] ivarconr 1 day ago
[–] sgt 1 day ago
Your platform has that and a ton of other things that would be useful for larger platforms, but it would be a pain to develop when you're already building a complicated roadmap.
[–] aussieguy1234 1 day ago
Feature flags are meant to be temporary.
[–] sgt 21 hours ago
[–] aussieguy1234 2 hours ago
[–] cfontes 1 day ago
If you work on a small startup, not worth it... on a Big corp with a lot of bureaucracy? It's worth it I think.
We have tried self-hosting it, but it's always a pain to allocate people on infra to do it, so I gave up and started paying for it for my teams, and they love it.
[–] everforward 1 day ago
They have non-linear scaling complexity, so they work fine with bumping up resources until they don’t and now you’re looking at queueing metrics on Kafka or something equally complicated. They’re horrible to change out because a lot of the APIs aren’t compatible and literally everything uses them.
They’re also awful to maintain. Everything uses them so there’s never a window when it’s convenient to shut down the feature flag system for upgrades or to test backup restores. People are much more accepting of “the vendor will be down for 2 hours on Saturday” than “I’m taking the system down for 2 hours on Saturday”.
[–] hobofan 1 day ago
We are on ~400k series, and switching to any hosted provider would instantly make that our single biggest infrastructure expense.
Instead we're self-hosting with less than $100/month for hosting and ~less than a hour per month of maintenance with Victoriametrics (have also switched fron singe-node to cluster over time), and it's a breeze.
[–] hinkley 1 day ago
1) the line between toggle and reloadable config is always fuzzy, in part because you don’t know for sure if it’s a toggle until users give their feedback. About half a percent of toggles stick around in perpetuity as either preferences or emergency relief valves for the operations team. That seems small but when you are doing CD aggressively that’s happening to you once a month or every few weeks which makes it a constant companion.
2) you need a system to track and complain about old toggles. If they survive the end of the Epic that birthed them, they become immortal. And you can see variations on Knight Capital play out when they get toggled years after they were supposed to be static.
[–] jhoward321 1 day ago
[–] hinkley 1 day ago
Part of my last job was winnowing down a convoluted feature toggle system, rebuilding parts of it on top of a FOSS library that did a fraction of the same work. It had become convoluted enough though that it was materially affecting both our deployment time and our cluster density.
To be a little fair to the original author, despite not really respecting him, I had to file a couple serious PRs upstream to simplify the most tortured parts. He worked around a couple of bug/misfeatures but took the scenic route to do it. Guy “never met an abstraction he didn’t like” is not true because his favorite thing was replacing one abstraction with three. And he was one of those guys who learned big words all from books and so he used definitions nobody under 65 has ever used in conversation.
[–] a4isms 1 day ago
But over time, you realize that half of the remaining 20% matters to you, and it turns out that the remaining 10% you care about is harder than it seems, and until you have it doing everything you need, you're stuck with an ad hoc, informally-specified, bug-ridden, slow implementation of half of LaunchDarkly.
————
Personally, I have worked on an in-house feature flag system, and I told everyone who would listen that its purpose was needs validation, and that as soon ass we were 100% sure we knew EXACTLY what we needed, we could go shopping. And that was in the hand-written code era. Today, you could vibe an 80% solution and do your needs assessment from there.
[–] 0x70dd 1 day ago
[–] notfried 1 day ago
These SaaS companies are only valued this much because they charge based on MAUs, not request-based. I prefer PostHog's model. 100M requests/month is ~$2K [*].
[*] I'm not affiliated with PostHog.
[–] skeeter2020 1 day ago
There is no way a Feature Flag system is a multi Billion dollar company based on the tech, and if there IS a Saas-pocalypse it's coming for players like LD first.
[–] pvo50555 1 day ago
[–] jhoward321 1 day ago
I am affiliated with featureflip but it does a ton of the same things for a sane price.
[–] paulryanrogers 1 day ago
[–] figmert 1 day ago
I'm not advocating for LD, I'm advocating for any feature management system.
[–] deathanatos 1 day ago
> In addition, it doesn't give you various features such as tagetting by users, segments, etc. Nor does it give you things like progressive rollout or automated rollback (yes we were using that in house and had saved us at least a few times).
These are things you can think of quite easily, or you just survey the landscape of what challenges other implementations run into and they inform you of this. The first iteration of our design had all of those; we could target users, always-subscribe internal users, we could have two features have the same segment/ordering of rollout, etc.
Database load wasn't ever a problem, because you're talking about quite literally a single SELECT on an already established & otherwise in use DB connection. But caching is not that much to bolt on afterwards should it become an issue.
It's never been clear to me that the simplicity of understanding that a single query has, even if it might be short a few features, is outweighed by the complexity of a full dependency to an external service.
As it was, our FF system outlived the company, and was sunset when the company ended.
[–] efficax 1 day ago
[–] LollipopYakuza 1 day ago
[–] ivarconr 1 day ago
- Self-hosted open source is free, with no usage limits. Run it on your own Postgres and you pay for a small VM.
- Paid plans are priced per seat (people using the admin UI), not per end user or per request. One million MAUs or a hundred million costs the same (we have some protection for high traffic volumes)
- Server-side SDKs evaluate locally, so a flag check never hits our servers and there's nothing to meter. Frontend traffic goes through Edge, which you can also self-host.
If you'd rather not lock into any vendor, put flags behind OpenFeature. Unleash, Flagsmith, GrowthBook and others all have providers, so switching later is a config change, not a rewrite.
[–] solyin 1 day ago
[–] vouwfietsman 1 day ago
Same features as all these big guys, EU hosted, and down-to-earth pricing. Even the free tier got me quite far.
I'm unaffiliated btw.
[–] jonhohle 1 day ago
[–] MiroslavPokorny 7 hours ago
Besides checking if something is true or false what else is there to do ?
What else can it do aka "feedback loop" ?
[–] hobofan 1 day ago
Audience is decided by analytics tool -> Feature flag server maps audience to feature flag value -> Analytics tool tracks its events and includes feature flag value as attribute
[–] jonhohle 1 day ago
Analytics is a much broader set of tooling. It can (and should) report similar things.
[–] hobofan 1 day ago
The main point of a FF system is that you have a runtime-controllable mapping from user attributes to feature flags, where a set of logic rules can dictate who is exposed to what feature. With most analytics-tool based rollouts, you would be able to only directly set an attribute and you then hard-wire that attribute to the feature toggle in app code, which gives you a lot less flexibility and always requires a engineer in the hot path when it comes to doing rollouts.
[–] horticulturist 1 day ago
[–] wmichelin 1 day ago
Granted we have a whole team supporting just that experimentation platform, but it's pretty cool. They even expose an MCP server for us to have agents do experiment analysis for us using.
[–] avlcodemonkey 17 hours ago
[–] Thomaschaaf 1 day ago
[–] soco 1 day ago
[–] wdb 17 hours ago
[–] hmokiguess 1 day ago
- 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"
[–] rafabulsing 1 day ago
[–] hmokiguess 1 day ago
[–] kalcode 1 day ago
If you have good CI/CD practices, an ENV for the environment has what feature is simplest. No new dependencies, change code commit deploy.
Non-tech folks need something else that allows them to switch it on and then off. For a variety of reasons.
[–] figmert 1 day ago
Feature management goes well beyond an env var. Sure an env var change is fine on it's own, but a change of the feature flag (essentially a release) requires a deployment.
Feature management separates these two. You can deploy without releasing. Because the code is there, but dormant behind an if that can change at runtime, you can actually target users, segments, or even do progressive rollout, and so much more. What this also means is you can test your changes in production without causing prod to go down. Best of all, a release doesn't mean a bad deployment.
It's not just about non-tech folks. It separates deploy and release in the SDLC, and that opens up a whole new world.
[–] kalcode 16 hours ago
Proper CI/CD means potentials hundreds of deployments a week. A deployment is nothing in some environments. And the change gets tracked into the environment that has it switched, into our logs and other observaility platforms.
So we get the same info. LaunchDarkly was amazing when coordinating with stakeholders and product owners. Especially for testing features, A/B, etc.
I'm definitely not trying to downplay it, but starting with just ENVs for each place is simplest and then they can expand into tools they need like LaunchDarkly or PostHog.
But starting there for small engi teams isn't as valuable. That's all, not against it for a product that builds to it, but just too much churn for smaller teams to use. I still advise ENV first.
And yah the realtime flags of LaunchDarkly were amazing , I needed that a few times.
[–] ctkhn 1 day ago
[–] VulgarExigency 1 day ago
[–] linesofcode 1 day ago
[–] kami23 1 day ago
Does your vcs become a living and evolving organism eventually self updating via recursive feedback loops. At what point do they ever stop trying to improve?
I love this as an interface of where humans and LLMs meet. Thanks for sharing. Really set me down a fun pondering hole
[–] watersb 10 hours ago
[–] sureglymop 1 day ago
This seem to be open source and self hostable (is it AGPL licensed?).
Can I, for personal use, fully self host every component? Or is it open core and e.g. multi tenancy isn't there etc.
[–] ivarconr 1 day ago
[–] dang 1 day ago
(Of course it's fine to use AI tools! We use them heavily ourselves. Just please don't use them to generate or edit text to be read by fellow humans on Hacker News.)
It's impossible to know for sure what was LLM generated or edited, but we have to rely on imperfect classifiers or else the site would be completely flooded by genai text, which is not what the community here wants to read, nor in the intended spirit of HN.
[–] ivarconr 1 day ago
[–] dang 1 day ago
Past explanations, in case they're helpful: https://hn.algolia.com/?dateRange=all&page=0&prefix=true&que...
[–] sureglymop 1 day ago
[–] Fidelix 1 day ago
It does not include single sign-on, SCIM provisioning, granular role-based access control, change request approvals... ```
1 project, 2 environments. Laughable.
[–] joaohaas 1 day ago
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.
[–] matsemann 1 day ago
[–] dolmen 1 day ago
[–] matsemann 1 day ago
All of these are of course possible to solve. But at some point just use something battle tested..
[–] stackghost 1 day ago
[–] ivarconr 1 day ago
[–] yuppiepuppie 1 day ago
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.
[–] FinnKuhn 1 day ago
Building something, updating it, running it, testing etc. still requires resources and attention. One example for this would be taxis. You pay for the comfort of not having to drive the car, do maintenance, take into account road works, cleaning, etc. and not because you couldn't drive a car yourself. That time you can use instead to focus on your actual business.
[–] leetrout 1 day ago
The owner at my current gig has multiple times said "software is over" as it being a sort of gravy train of rent seeking. Products are gonna have to offer real / significant value to attract new customers. Maybe even to keep them, too...
[–] skeeter2020 1 day ago
This sounds good in theory but - and I speak from experience with a FF system causing a system-wide outage - clients don't care why YOU had an outage, or that it's not immediately your fault, and they really shouldn't have to. The reality is more like you're paying for a dependecy that you can't mitigate.
[–] hobofan 1 day ago
Given that every FF system comes with a bunch of different mechanisms that prevent your system from being catastrophically impacted in case the provider goes down, its still the fault of the integrating party if you experience an outage due to a FF provider.
[–] chanhyounglee 1 day ago
[–] gerardnico 1 day ago
[–] higeorge13 1 day ago
[–] anonymous908213 1 day ago
The only appealing marketing I've seen in the past three years
[–] ltbarcly3 1 day ago
[–] 4lx87 1 day ago
My company has used 3 different feature flag services in 5 years, spent thousands of dollars, with multiple migrations and teams of engineers involved. All to basically implement `SELECT 1 FROM feature_flags WHERE team_id = ?`. Makes me want to blow my brains out.
[–] konfusinomicon 1 day ago
[–] ivarconr 1 day ago
[–] yearesadpeople 1 day ago
[–] ivarconr 1 day ago
[–] selinajing1001 1 day ago
[–] sneak 1 day ago
[–] kleiba2 1 day ago
[–] sneak 1 day ago
[–] thunderfork 1 day ago
[–] ivarconr 1 day ago
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.
[–] gegtik 1 day ago
if you already are in a platform capture situation, eg. Azure App Configuration or AWS AppConfig where you already integrate with platform tools using the native auth primitives, what is the benefit one can expect from switching to unleash?
[–] ivarconr 1 day ago
We see teams move when they have more complicated needs, either in terms of compliance, 4-eyes approvals, scalability and lifecycle tracking.
Anything you’re missing today, or is it working fine?
[–] otterley 1 day ago
[–] ivarconr 16 hours ago
We have a few tricks we apply:
- Yggdrasil is the "Unleash SDK Engine". Written in rust and cross-compiled to multiple languages. This makes it easier to add features, and ensures all SDKs implements the protocol the same way. https://github.com/Unleash/yggdrasil
- Try to have a simple and generic protocol - This allows us to add new targeting capabilities later, without having to change the SDKs. In practice I must admit this is not easy and have only been possible in a few scenarios
- Make sure the SDK report their protocol version. This allows you do adapt the product to tell the user to upgrade to get new features. We also leveraged the SDK version when we introduced segments, as we could rewrite those to a less performant format in the API, to simplify the rollout.
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/