Skip to main content

One post tagged with "case-study"

View All Tags

DataGalaxy Feature Flag Journey: How OpenFeature and GO Feature Flag Rebuilt Trust Between Teams

· 16 min read
Tom Flenner
Staff Engineer at DataGalaxy

DataGalaxy Feature Flag Journey: How OpenFeature and GO Feature Flag Rebuilt Trust Between Teams

A note from GO Feature Flag

We are delighted to welcome Tom Flenner, Staff Engineer at DataGalaxy, as a guest contributor to the GO Feature Flag blog.

Drawing on his firsthand experience, Tom shares why DataGalaxy adopted GO Feature Flag, how the team integrated it across the company, and what they learned along the way.

A few years ago, a fairly ordinary question would derail a fairly ordinary meeting at DataGalaxy: "is this feature actually live for this customer?"
Nobody in the room could answer it with confidence. The backend engineer would check a database table. The frontend engineer would check a build-time environment variable that may or may not have shipped in the last release. Someone from infra would mention an ingress rule nobody had touched in months. Three answers, three systems, and no way to know which one was telling the truth.

That meeting, repeated in different forms often enough to become a running joke, is really where this story starts. This is the story of how we went from that mess to a single, open, standardized way of answering that question, using OpenFeature as the contract and GO Feature Flag as the engine underneath it. It's also the first in a series of articles we plan to write about what feature flags have changed for us, and about the parts of this journey we haven't figured out yet.

A quick word on what a feature flag actually is

If you're already deep in flag tooling, feel free to skip ahead. But it's worth grounding this story in the idea itself, because the term gets used loosely.

A feature flag (also called a feature toggle) is a mechanism that lets you change your software's behavior without changing and redeploying its code. Martin Fowler's Feature Toggles article remains the best reference on the topic: it separates flags into categories (release toggles, experiment toggles, ops toggles, permission toggles) and makes an argument we'd underlined long before we could articulate it ourselves: a flag isn't just an if statement, it's a piece of infrastructure with its own lifecycle, and treating it otherwise is how you end up with the mess described above.

That framing matters, because for a long time, we weren't running "feature flags" in that sense. We were running scattered conditionals with delusions of grandeur.