DevCycle Architecture Overview

See how our Client, Mobile, and Server SDKs provide quick global answers and local assessments, with continuous improvements like full Server-Sent Event (SSE) connection implementation.

DevCycle Architecture Overview

How it works

1

Features created in the Dashboard interact directly with our Management API.

Vertical Connector
2

Management API changes are delivered by a Queue to the Config Service.

Vertical Connector
3

The Config Service bundles any changes into a JSON configuration file for each environment, project, and SDK type (mobile / client / server).

Vertical Connector
4

The created configuration files are served by Cloudflare CDN, which is globally distributed to serve traffic at scale.

Vertical Connector
5

The Config Service invalidates Cloudflare's CDN cache in ~1 second globally and notifies SDKs via a server-sent event (SSE) connection that updates are available.

Vertical Connector

DevCycle SDKs

All of our SDKs are open-source. The SDK retrieve and process CDN configuration files. This requires APIs, user, and project data, and a bucketing library to determine user outcomes like what feature flags they are served. The SDK ensures global response speeds in servers, mobile, and client-side contexts.

Server SDKs

Server SDKs

1

The Server SDK retrieves the configuration file updates from the CDN via SSE updates or polling against the CDN. The configuration file is then passed into a shared WebAssembly bucketing and segmentation library.

2

The bucketing and segmentation library combines user data, device data, and the project configuration to bucket users into features and variations to determine variable values.

3

Event data is aggregated and sent on an interval to our Events API.

Client SDKs

Client SDKs

1

Mobile and Client SDKs (like JavaScript SDKs) interact with the Client SDK API served by Cloudflare Workers at the edge for fast global response times.

2

Cloudflare Workers and server SDKs use the same shared WebAssembly bucketing and segmentation library to ensure consistency and shared logic across environments.

3

Event data is aggregated and sent on an interval to our Events API.

4

The Client SDKs make SSE connections to receive configuration updates in real-time.

5

Event data is sent on an interval to our Events API.

Ready to explore DevCycle for yourself?

Our generous free plan gives you all the room you need.