Boost DX, Enhance UX, and Skyrocket Profits! Dive into a sub-50ms world with Edge Feature Flags 🚀
Tags: devops, ux, productivity, webdev
Published: 2023-09-15 10:00:39

Hello, everyone! Today, I will discuss the impact of the development cycle's speed on business and the importance of feature flags, as well as how to select the right technology.

## DORA (FourKeys) and the Speed of the Development Cycle 🏃‍♂️
Let's begin with the findings from the extensive research program, [DevOps Research and Assessment (DORA)](https://cloud.google.com/blog/products/devops-sre/dora-2022-accelerate-state-of-devops-report-now-out), run by Google. According to DORA's studies, it's evident that [**as the speed of the development cycle increases, so does the business value**](https://codeclimate.com/blog/dora-metrics-webinar-nathen-harvey). Isn't this an interesting result for many developers and business owners?

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/puq3o6z06eja47lik72t.png)


## The Need for Trunk-Based Development ⺦

To achieve this rapid development cycle, [trunk-based development](https://trunkbaseddevelopment.com/) is gaining attention. However, to implement trunk-based development, the technology of feature flags is essential. The reason being, among various factors, feature flags particularly allow the _safe and swift release of new features_.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mr93os658excrsrf3pn4.png)

As trunk-based development progresses, there's a need to manage new features dynamically using flags to minimize any adverse effects on users. That's where feature flags come into play.

```javascript
newFeature = true

if (newFeature == true)
  provideNewFeature()
else 
  provideOldFeature()
```

## Choosing a Feature Flag System 🔎

Currently, there are numerous feature flag systems available. Options include our own company's open-source system, ["Bucketeer"](https://bucketeer.io/), and the renowned SaaS ["LaunchDarkly"](https://launchdarkly.com/) among others. When comparing these, the following considerations might come into play:

- **Cost**: Many services are expensive.
- **Operating Environment**: Can it be used in diverse environments such as server-side, client-side, mobile apps and the edge?
- **Richness of SDKs**: Offering SDKs to facilitate implementation by teams.
- **Performance**: Whether it has low latency (processed at the edge).


## Comparison of Feature Flag Vendors in Late 2023 ☑️

| Vendor | Server SDK | Client SDK | Real-time Update | Edge Processing | Open Feature | Free Tier | Seat/Month | 1000 MAU | 100k MAU | 1M MAU |
|---|---|---|---|---|---|---|---|---|---|---|
| [DevCycle](https://devcycle.com/) | 9 | 6 | ✅ | ✅ | ✅ | 1000 MAU | - | - | $60 | $420 |
| [LaunchDarkly](https://launchdarkly.com/) | 25 | 12 | ✅ | 🔺 | ✅ | ❌ | $16.67/seat | - | Inquiry | Inquiry |
| [ConfigCat](https://configcat.com/) | 12 | 5 | ✅ | 🔺 | ✅ | 10 features | - | - | - | - |
| [Split.io](https://www.split.io/) | 8 | 9 | ❌ | ❌ | ✅ | 10 seats | $33~ | - |  - | Inquiry |
| [Optimizely](http://optimizely.com/) | 7 | 5 | ❌ | 🔺 | ❌ | - | - | Inquiry | Inquiry | Inquiry |
| [VWO](https://vwo.com/) | 7 | 6 | ❌ | ❌ | ❌ | 50k MAU | - | - | $549 | $3563 |
| [Statsig](https://www.statsig.com/) | 10 | 9 | ❌ | ❌ | ❌ | 1M Event Count | - | - | - | $150~ / 1M Event Count |
| [CloudBees](https://www.cloudbees.com/capabilities/feature-management) | 9 | 4 | ❌ | ❌ | ✅ | 15 seats | $1325 / 16 seats | - | - | Inquiry |
| [Apptimize](https://apptimize.com/feature-flags/) | 3 | 6 | ✅  | ❌ | ❌ | Inquiry | Inquiry | Inquiry | Inquiry | Inquiry |
| [Molasses](https://www.molasses.app/) | 4 | 3 | ❌ | ❌ | ❌ | 1000 MAU | - | - | $200 / 25k MAU | Inquiry |
| [Harness](https://www.harness.io/) | 9 | 7 | ❌ | ❌ | ❌ | 2 seats 25k MAU | $12.5/seat | - | - | Inquiry |
| [Firebase Remote Config](https://firebase.google.com/docs/remote-config) | 0 | 7 | ✅ | ❌ | ❌ | - | - | - | - | - |
| [Growthbook](https://www.growthbook.io/) | 7 | 5 | ✅ | ❌ | ❌ | 3 seats | $20/seat | - | - | - |
| [AWS Evidently](https://aws.amazon.com/jp/blogs/news/cloudwatch-evidently/) | 13 | 3 | ❌ | ❌ | ❌ | - | - | - | - | $5 / 1M Event Count |
| [Bugsnag](https://www.bugsnag.com/) | 8 | 8 | ❌ | ❌ | ❌ | 1 seat | $65 / 5 seats | Inquiry | Inquiry | Inquiry |
| [PostHog](https://posthog.com/) | 5 | 7 | ❌ | ❌ | ✅ | Limited Features | - | - | - | $1/10k Downloads |
| [Flagsmith](https://www.flagsmith.com/) | 8 | 4 | ✅ | 🔺 | ❌ | 1 seat | $200/5 seats | - | - | $200 / 500k Downloads |
| [Unleash](https://www.getunleash.io/) | 20 | 11 | ❌ | ❌ | ❌ | OSS Self-host | $80/5 seats | Inquiry | Inquiry | Inquiry |
| [Flipt](https://www.flipt.io/) | 5 | 1 | ❌ | ❌ | ✅ | OSS Self-host | - | - | - | - |
| [Bucketeer](https://bucketeer.io/) | 2 | 4 | ✅ | ❌ | ❌ | OSS Self-host | - | - | - | - |
| [Flargd](https://github.com/pmbanugo/flargd) | 1 | 1 | ❌ | ✅ | ❌ | OSS Self-host | - | - | - | - |
| [TwoFlags](https://github.com/twoflags-io/twoflags-api) | 1 | 1 | ❌ | ✅ | ❌ | OSS Self-host | - | - | - | - |

`* Each vendor has different billing models and multiple plans, making comparison very challenging. This table is just to get the big picture. Any corrections or updates in the comments are appreciated.`


## What is the [OpenFeature Standard](https://openfeature.dev/)? 

It is an [open standard for managing feature flags](https://openfeature.dev/docs/reference/intro/). It defines APIs and provides SDKs **without depending on a specific vendor**. The goal is to solidify the ecosystem around feature flags. Vendors complying with this standard **prevent lock-in**, making it easy to switch to another vendor if the need arises.

![Image](https://storage.googleapis.com/zenn-user-upload/084609530334-20230915.png)

## Impressions After Comparing 🧐

#### Recommended SaaS Options:
- [DevCycle](https://devcycle.com/) (Outstanding performance, DX, UX)
- [LaunchDarkly](https://launchdarkly.com/) (Impressive number of integrations, mature, but also pricey)
- [ConfigCat](https://configcat.com/) (Simple, affordable)
- [Statsig](https://www.statsig.com/) (Attractive pricing model)

#### Well-maintained Open Source Options:
For companies with the operational capacity to self-host, open-source solutions are a viable choice.
- [Unleash](https://www.getunleash.io/) (Most momentum among OSS but the SaaS version is pricey)
- [FlagSmith](https://www.flagsmith.com/) (Reasonably priced SaaS version)
- [Bucketter](https://bucketeer.io/) (Recently released by our company CyberAgent)
- [Flipt](https://www.flipt.io/) (Simple, no SaaS version)

#### No Longer Maintained Open Source Options:
Both of these OSS options were designed for the Edge architecture based on [Cloudflare Workers](https://workers.cloudflare.com/), but unfortunately, they no longer seem to be maintained.
- [Flargd](https://github.com/pmbanugo/flargd)
- [TwoFlags](https://github.com/twoflags-io/twoflags-api)

#### Google & Amazon Options:
- [Google Firebase Remote Config](https://firebase.google.com/docs/remote-config)
The "forever free" aspect is highly appealing, but due to factors like latency, Developer Experience, and the lack of a server SDKs, it's feature are just too minimal to be recommended. Firebase Time-to-Market is too slow, and Reature Releases is too low. Maybe their DORA metrics are not good, or it just lacks of strong Head of Product?

- [AWS CloudWatch Evidently](https://aws.amazon.com/jp/blogs/news/cloudwatch-evidently/)
The worst. No comment. AWS seems to perpetually lack a good DX for developers. It appears that [they don't recognize or continually undervalue the importance of roles other than engineers, such as Product Managers or Designers](https://x.com/connor_lindsey/status/1301895360340582401?s=20). Very disappointing. However, AWS has recently acquired [Fig](https://techcrunch.com/2023/08/29/amazon-fig-command-line-terminal-generative-ai/), so looks like they're now pursuing an acquisition strategy instead. Let's see how it turns it out, and let's hope they don't ruin [Fig](https://fig.io/), since it's such an useful tool.

## Importance of UX and Latency ⚡️

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qqkh0mod6qckwtkyf3ba.png)

With the advent of edge computing, user UX has become even more critical. According to the [Doherty Threshold](https://lawsofux.com/doherty-threshold/) (proposed in year 1982), the response time limit for maintaining user productivity was **400ms** (before, that the norm was **2000ms**). 
However, considering the response speed trends of recent [popular and loved by their user apps (like Linear and Cron)](https://x.com/soukiassianb/status/1546222108442669056?s=20), user expectations are continuously rising, now probably just below **100ms**. In a mature market, this is the most distinguishing factor, also one of the reasons for [Google's success](https://netvantagemarketing.com/how-does-google-return-results-so-damn-fast/).

Achieving this `100ms` in a standard feature flag system might be next-to-impossible challenge due to the system's architecture. Some SaaS providers cache on the Edge taking UX in account, but the database and processing aren't typically done on the Edge.

This is where feature flag systems implemented on the Edge come into focus.

## Introduction to DevCycle 💡

![Image](https://storage.googleapis.com/zenn-user-upload/2ae7d59235cd-20230915.png)

We found the high-speed feature flag system operating on the cloud edge that we were looking for: [DevCycle](https://devcycle.com/). The benefits of DevCycle include:

- **Latency under 50ms**: Rapid response.
- **Rich SDK offering**: Easy to implement.
- **Pricing model**: Charged by MAU, yet affordable.
- **User-friendly**: Intuitive DX and UX.
- **Real-time updates**: Via SSE.
- **Compliance with OpenFeature**: Avoids vendor lock-in.
- **IDE Extension**: With [DevCycle's VSCode Extension](https://marketplace.visualstudio.com/items?itemName=DevCycle.devcycle-feature-flags), there's no need to open the admin console, further boosting development efficiency.
- **Edge Flags**: Offering the [Edge DB feature](https://devcycle.com/features/edge-flags).

---

## DevCycle's Superior Technical Strategy: Edge First and WASM 🏁

The company behind DevCycle is [Taplytics](https://taplytics.com/). Since 2014, Taplytics has been developing an A/B testing SaaS of the same name. To improve scalability, latency, DX and focus on Feature Flags, they decided to develop a product called DevCycle. They have adopted an architecture that doest works mostly on the Edge. As of today, **Processing** is done through [Cloudflare Workers](https://blog.cloudflare.com/devcycle-customer-story/), **DB** through [Macrometa](https://www.macrometa.com/platform/global-data-mesh), and **SSE Pushes** via [Ably](https://ably.com/). They have made bold takes for performance such as Edge First and WASM.

![](https://docs.devcycle.com/assets/images/architecture-docs-diagrams-cloud-server-sdk-2943319d5e62e2b8e18fd5920564a4c2.svg)

To maximize the performance of the cross-platform SDK, most of it has been implemented in [WASM (AssemblyScript)](https://devcycle.com/blog/powered-by-webassembly-crafting-a-shared-bucketing-library-for-cross-platform-consistency). However, the Go SDK has been implemented in native Go rather than WebAssembly, as it has demonstrated better multi-threaded performance for special cases. This might change in the future when [WASI Threads](https://bytecodealliance.org/articles/wasi-threads) become a reality).

## Moving from Container Runtime to WASM Runtime 🚢 → 🏎️

[Jonathan Norris](https://twitter.com/jonathannorris) (CTO of DevCycle) has a hot take "[WebAssembly runtimes will replace container-based runtimes by 2030](https://changelog.com/posts/webassembly-runtimes-will-replace-container-runtimes-by-2030)."

In short:

### Technical Advantages of WebAssembly
1. Strict security model
2. Extremely fast startup time
3. Scalability at the edge
4. Extremely lightweight
5. Portability across environments
6. Cross-language development
7. Performance

### Cost Benefits of WebAssembly
1. Workloads on edge runtimes such as [Cloudflare Workers](https://workers.cloudflare.com/), [Fastly](https://www.fastly.com/products/edge-compute), and [Netlify](https://www.netlify.com/) have lower costs than [AWS Lambda](https://aws.amazon.com/lambda/) due to their smaller startup time and binary sizes.
2. Edge runtimes can start up in milliseconds, while containerized services like Lambda take longer to start and consume more memory.
3. By migrating to these edge runtimes, DevCycle says they have achieved significant cost savings. They are also running large APIs at the edge.

### DevCycle Support 🙋🏻‍♂️
On a side note, even though I haven't become a paid user yet for DevCycle, I had some questions. When I reached out on Discord, I received a direct response also from the Head of Product within a few hours. They also informed me that it's already on their [recently published roadmap](https://docs.devcycle.com/product-roadmap), which I found impressive due to their swift response.

![](https://storage.googleapis.com/zenn-user-upload/32d9959d95dc-20230915.png)

![Conversation on Discord](https://storage.googleapis.com/zenn-user-upload/cf61b558feee-20230915.png)

### Prioritizing and Roadmapping with ProductBoard ✍️

![](https://storage.googleapis.com/zenn-user-upload/56525c417929-20230915.webp)

By the way, when I was checking DevCycle's roadmap, I found that they were publicly sharing customer feedback and their roadmap on [ProductBoard](https://www.productboard.com/). I wish all product managers would follow suit. Is your Product Manager still struggling with priority decisions on [Excel, Miro, JIRA or Notion...?](https://dev.to/chuloo/11-tools-to-use-as-a-technical-product-manager-126b)

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lucsd2vjeo7n1isxxsc6.png)


## Conclusion 🚀

The **speed of the development cycle is directly related to the business value**. Achieving a faster development cycle requires **trunk-based development** and the use of **feature flags**. The introduction of the open standard for feature flags, **OpenFeature**, helps in preventing vendor lock-in. However, the **speed of processing**, especially at the **Edge**, is vital for user experience. And for this, **solutions like DevCycle are ideal**.

Remember, while technology is definitely essential, the main challenge is cultural transformation. It's not just about introducing new tools or techniques, but about how teams work together and understand the value they deliver. 
Recent products like [Vercel](https://vercel.com/), [Bun](https://oven.sh/), [Linear](https://linear.app/) and [DevCycle](https://devcycle.com/) understand the real impact DX has in regard to transforming cultures.

Thank you for reading! If you found this post helpful, please share it with your colleagues and friends!
And as always, feel free to drop any questions or feedback in the comments below.