For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
Sign inTry it free
DocsGuidesSDKsIntegrationsAPI docsTutorialsFlagship blog
DocsGuidesSDKsIntegrationsAPI docsTutorialsFlagship blog
  • Get started
    • Overview
    • Onboarding
    • Get started
    • Launch Insights
    • LaunchDarkly architecture
    • LaunchDarkly vocabulary
  • AgentControl
    • AgentControl
    • Manage AgentControl
  • Feature flags
    • Create flags
    • Target with flags
    • Flag templates
    • Manage flags
    • Code references
    • Contexts
    • Segments
  • Releases
    • Releasing features with LaunchDarkly
    • Release policies
    • Percentage rollouts
    • Progressive rollouts
    • Guarded rollouts
    • Feature monitoring
    • Release pipelines
    • Engineering insights
    • Release management tools
    • Applications and app versions
    • Change history
    • Restoring previous flag versions
  • Observability
    • Observability
    • Session replay
    • Error monitoring
    • Logs
    • Traces
    • Observability metrics
    • Product analytics events
    • LLM observability
    • Alerts
    • Dashboards
    • Service map
    • Vega for auto-remediation
    • Observability MCP server
    • Search specification
    • Observability settings
    • Observability integrations
  • Experimentation
    • Experimentation
    • Experiment metric types
    • Experiment configuration
    • Managing experiments
    • Analyzing experiments
    • Multi-armed bandits
    • Holdouts
  • Metrics and events
    • Metrics in LaunchDarkly
    • Creating metrics
    • Metric groups
    • Events
    • Autogenerated metrics
  • Warehouse native
    • Warehouse native metrics
    • Setting up external warehouses
    • Creating experiments using warehouse native metrics
  • Infrastructure
    • Connect apps and services to LaunchDarkly
    • LaunchDarkly in China and Pakistan
    • LaunchDarkly in the European Union (EU)
    • LaunchDarkly in federal environments
    • Public IP list
  • Your account
    • Projects
    • Views
    • Environments
    • Tags
    • Teams
    • Members
    • Roles
    • Account security
    • Feature previews
    • Billing and usage
    • Changelog
Sign inTry it free
LogoLogo
On this page
  • Overview
  • How LaunchDarkly connects to your application
  • How your application receives flag values
  • Optional components of a LaunchDarkly installation
  • The Relay Proxy
  • Data Export
  • Further reading
Get started

LaunchDarkly architecture

Was this page helpful?
Previous

LaunchDarkly vocabulary

Next
Built with

Overview

This topic gives a high-level explanation of LaunchDarkly’s platform architecture. You may want to read this topic if you are a developer considering implementing LaunchDarkly in your project, or an administrator who wants to understand how LaunchDarkly interacts with your app. If you’re an end user of the LaunchDarkly user interface (UI), you may not need to know what’s explained in this topic.

How LaunchDarkly connects to your application

Your application uses a LaunchDarkly SDK to connect to LaunchDarkly’s flag delivery network, and uses that connection to evaluate and serve specific feature flag variations to specific contexts with any attributes you specify. You can use context attributes to target individuals, device types, geographic regions, infrastructure components, operating system versions, and more. This is true regardless of whether LaunchDarkly serves the flag variation to a desktop, laptop, or mobile device. LaunchDarkly SDKs are available in dozens of languages. To learn more, read SDKs.

The flag delivery network is composed of a third-party content delivery network (CDN) and LaunchDarkly's distributed core architecture components. LaunchDarkly's core architecture is secure and highly available, which enables fast responses and consistent experiences anywhere in the world.

How your application receives flag values

After you integrate a LaunchDarkly SDK with your application, flag evaluation can begin. When your application launches, the LaunchDarkly SDK initializes and retrieves the current set of feature flag values from LaunchDarkly. By default, the SDK stores and evaluates this initial feature flag data in an in-memory cache that never expires. Your application uses the in-memory feature store to receive near-instant access to flag variations, and the SDK sends information about flag evaluations back to LaunchDarkly.

A diagram showing the end-to-end connection between LaunchDarkly's flag delivery network and your application. LaunchDarkly's Federal and EU instances have slightly different topology.

A diagram showing the end-to-end connection between LaunchDarkly's flag delivery network and your application. LaunchDarkly's Federal and EU instances have slightly different topology.

When you update a flag’s targeting rules, the update is sent through LaunchDarkly’s streaming infrastructure directly to all connected SDKs. While updates stream by default, some environments may not support persistent connections or may prefer not to maintain them—such as mobile apps where long-lived connections could consume end users’ limited data. In those cases, LaunchDarkly SDKs can fall back to polling mode to receive flag updates.

We do not recommend polling mode

We do not recommend using polling mode except in specific situations where streaming mode does not support your use case.

There are several different types of LaunchDarkly SDKs that can connect your application to LaunchDarkly, including server-side SDKs, client-side SDKs, edge SDKs, AI SDKs, and more. Client-side SDKs support both mobile devices and browsers. To learn more about how each type of SDK works, read Choosing an SDK type.

If the SDK loses its connection to LaunchDarkly, your application continues to use the in-memory feature store to receive flag variations. If an SDK cannot reach LaunchDarkly during initialization, it falls back to using default flag values that you define in your application code. Server-side SDKs can use an optional persistent data store to provide more availability to updated feature flag data during SDK initialization. Client-side and mobile SDKs may have platform-specific storage mechanisms or can optionally use a Relay Proxy to improve availability. To learn more, read Persistent data stores or Optional components of a LaunchDarkly installation.

Optional components of a LaunchDarkly installation

In addition to LaunchDarkly’s built-in core architecture, two optional components are available for you to configure. You do not have to use either of these components, but if you do, you can use either or both. Whatever you choose, you install and configure the components, and you control the data that flows in or out of them.

The Relay Proxy

The Relay Proxy is an optional component that provides a cache of flag values for a LaunchDarkly environment. To learn more, read The Relay Proxy.

A diagram showing the end-to-end connection between LaunchDarkly's flag delivery network and your application, including an optional Relay Proxy. LaunchDarkly's Federal and EU instances have slightly different topology.

A diagram showing the end-to-end connection between LaunchDarkly's flag delivery network and your application, including an optional Relay Proxy. LaunchDarkly's Federal and EU instances have slightly different topology.

Data Export

Data Export is an optional feature that allows you to stream event data to different destination services so you can analyze information using your preferred tools. To learn more, read Data Export.

A diagram showing the end-to-end connection between LaunchDarkly's flag delivery network and your application, including an optional Data Export destination. LaunchDarkly's Federal and EU instances have slightly different topology.

A diagram showing the end-to-end connection between LaunchDarkly's flag delivery network and your application, including an optional Data Export destination. LaunchDarkly's Federal and EU instances have slightly different topology.

Further reading

Visit our LaunchDarkly help center to learn about Common misconceptions about LaunchDarkly architecture.