Setting Up Feature Flags with Unleash: A Practical Guide

When rolling out new functionality turns into hours of coordination between teams and rolling back changes takes too long, it's time to implement feature flags. We configure Unleash, a feature management system that enables safe canary releases and A/B testing. Our team delivers a turnkey project, from deployment in Kubernetes to activation strategy setup, ensuring reliable operation and ongoing support.

Our competencies:

Frequently Asked Questions

Latest works

  • Development of a web application for FEEDME
    Development of a web application for FEEDME
    1365
  • Development of an online store for the company FURNORO
    Development of an online store for the company FURNORO
    1330
  • B2B Advance company logo design
    B2B Advance company logo design
    776
  • Development of a web application for Enviok
    Development of a web application for Enviok
    1077
  • AIDER company logo development
    AIDER company logo development
    1022
  • CRM development for Chasseurs
    CRM development for Chasseurs
    1113

Feature flag system is needed when the number of code paths becomes too large and rollout via a Git repository takes hours. With 50+ microservices, each change requires coordination, and rollout time grows to 3–4 hours. Without a good toggle manager, it's easy to get a cascade of errors when rolling out new functionality. In our practice, we deploy Unleash to reduce risks in A/B tests and canary releases. As stated in the official Unleash documentation, the system supports many activation strategies out of the box. Over 5 years, we have implemented it in projects with traffic of 1 million requests per day, reducing rollback time from 30 minutes to a few seconds.

Unleash is a self-hosted system with the richest set of built-in activation strategies. Unlike simple on/off systems, Unleash out of the box supports gradualRollout, userWithId, remoteAddress, flexibleRollout with sticky sessioning — without writing custom logic. This allows enabling functionality gradually, by users, IP, or random percentage.

We have been in the market for 5+ years, completed 30+ projects with feature toggle systems. Below is practical experience of setting up Unleash in Kubernetes.

Deploying Unleash in Kubernetes

Example Deployment manifest
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: unleash
spec:
  replicas: 2
  template:
    spec:
      containers:
        - name: unleash
          image: unleashorg/unleash-server:5.12
          env:
            - name: DATABASE_URL
              valueFrom:
                secretKeyRef:
                  name: unleash-secrets
                  key: database-url
            - name: SECRET
              valueFrom:
                secretKeyRef:
                  name: unleash-secrets
                  key: admin-secret
            - name: INIT_FRONTEND_API_TOKENS
              value: "frontend:default.frontend-token"
          ports:
            - containerPort: 4242
          readinessProbe:
            httpGet:
              path: /health
              port: 4242
            initialDelaySeconds: 10

PostgreSQL is a mandatory requirement. SQLite is not suitable for production.

Activation Strategies

Unleash divides toggles into several types:

  • release — gradual rollout to a percentage of users
  • experiment — A/B test with multiple variants
  • operational — kill switch for problematic code
  • permission — enable for specific roles/groups

For gradual rollout with sticky sessioning (user always sees the same thing):

import { Unleash } from 'unleash-client';

const unleash = new Unleash({
  url: 'https://unleash.internal/api',
  appName: 'api-service',
  customHeaders: {
    Authorization: 'srv-*****',
  },
});

await unleash.start();

// Sticky rollout — user always in the same bucket
const context = {
  userId: user.id,
  sessionId: session.id,
};

if (unleash.isEnabled('new-pricing-page', context)) {
  // show new page
}

The flexibleRollout strategy uses userId or sessionId for consistent hashing — the same user always gets the same result regardless of server.

Unleash Edge for latency reduction

In distributed systems, the SDK makes an HTTP request to the Unleash API on every evaluate. Unleash Edge is a lightweight proxy that caches at the Kubernetes namespace or even pod level:

---
- name: unleash-edge
  image: unleashorg/unleash-edge:latest
  env:
    - name: UPSTREAM_URL
      value: "https://unleash.internal"
    - name: TOKENS
      value: "srv-*****"
  ports:
    - containerPort: 3063
---

The SDK connects to Edge over the cluster network — latency is microseconds instead of milliseconds to the external Unleash server.

Unleash vs LaunchDarkly comparison

Criteria Unleash LaunchDarkly
Price Free (self-hosted) + Ops costs From $1,000/month for 10,000 flags
Data control Full (your infrastructure) Data on vendor servers
Open-source Yes (Apache 2.0) No
Performance ~5ms evaluate on server, <1ms via Edge ~100ms evaluate without cache
Ease of setup Medium (DevOps needed) High (SaaS)

Subscription savings when switching from LaunchDarkly are 50-70% for volumes over 10,000 flags, which in monetary terms means reducing costs from $2,000/month to $600-1,000/month. However, Unleash requires engineering hours for maintenance — on average 4 hours per month, at a rate of $100/hour adds $400/month in additional costs. Net savings can reach $1,000-1,600/month.

How we set up Unleash: step-by-step plan

  1. Infrastructure audit — assess current microservices, number of flags, latency requirements.
  2. Deploy server and database — set up Unleash + PostgreSQL in Kubernetes using Helm or Kustomize.
  3. Integrate SDK — connect clients (Node.js, Go, Python) to the server or Edge, configure tokens.
  4. Configure strategies — create custom strategies for canary, A/B, kill switch, import existing toggles.
  5. Monitoring and alerts — set up Grafana dashboards, alerts on SLO and MTTR, write runbook for incidents.

Why choose Unleash over LaunchDarkly?

Unleash is better than LaunchDarkly in scenarios where data control and cost are important. For volumes over 10,000 flags, subscription savings are 50-70%, but you pay with Ops time. Unleash is fully open-source — you can fork and customize. LaunchDarkly gives less infrastructure hassle but ties you to the cloud.

How to reduce flag evaluation latency?

Use Unleash Edge — a lightweight proxy that caches flags in memory. Edge can be placed in each Kubernetes namespace so SDKs connect locally. At 1,000,000 evaluates per hour, Edge reduces server load by 10x and guarantees latency <1ms.

What's included in turnkey Unleash setup

Component Result
Server deployment Working Unleash in your cluster with PostgreSQL
SDK integration Connection of one or more applications
Strategy configuration Creation of custom strategies for canary, A/B, kill switch
Unleash Edge Installation and configuration of Edge for low latency
Monitoring Grafana dashboards and alerts on critical metrics

How we ensure deployment reliability?

We use GitOps with ArgoCD, cover configuration with tests, and provide runbooks for incidents. Experience from 30+ projects helps avoid typical mistakes in RBAC, NetworkPolicy, and scaling. We guarantee stable operation: SLO 99.9% for the Unleash server.

Implementation timeline and how to order

Server deployment + basic SDK integration — from 1 day. Strategy configuration, Edge proxy, import of existing flags — from 1 to 2 days. Cost is calculated individually after an infrastructure audit.

Contact us for an audit of your project. Get a consultation on the optimal Unleash configuration. Order feature flag setup to speed up your release cycle. Write to us, we are always available.