Architecture
Rust control plane and edge evaluation
FluxGate separates administration from evaluation. The backend persists and streams flag state, while edge nodes handle low-latency decisions near application traffic.


Components
What runs where
Four services make up FluxGate. People work in the Admin UI, the backend keeps the truth, and edge servers answer your apps.
Evaluation flow
How an evaluation flows
From a flag request in your app to a data point on a dashboard, in six steps.
- 1App
Ask for a flag
Your app sends the flag key and the user’s context to the edge server: over OFREP with its SDK key, or over /evaluate, which answers as the edge’s own client.
- 2Edge server
Check the caller
On OFREP the edge checks the SDK key. A good key is cached for up to five minutes, so repeat calls skip the backend check.
- 3Edge server
Find the rules
It reads the flag from its in-memory copy and picks the stage for the client’s environment.
- 4Edge server
Choose a variant
Criteria run in priority order and the first match wins. A weighted split hashes the flag key with the bucketing key, so a user always lands in the same bucket.
- 5App
Use the answer
The response carries the value, the variant and the reason. Your code branches on it.
- 6Backend
Record it
The edge sends evaluation events to the backend in batches, about every 30 seconds by default. The dashboards read them.
Sync
How changes sync to edge servers
Each edge server loads a snapshot when it connects. After that the backend pushes every saved change down a gRPC stream, so a change reaches every edge of the team within moments, without a redeploy.
1 · Connect on start and on every reconnect
- Edge server to Backend
Look up the client’s team
which team does this client belong to? - Edge server to Backend
Open the stream
signs in with the client ID and API key - Backend to Edge server
Snapshot of every team feature
one message per feature - Backend to Edge server
Snapshot complete
the edge drops features that are gone
2 · Live change every saved change
- Admin UI to Backend
Save a change
for example criteria, stage, approval, delete - Backend
Commit to PostgreSQL
before anything is pushed - Backend to Edge server
Push the full feature
to every edge of the team - Edge server
Update the cache
replace it, clear cached results
If the stream drops
The edge keeps answering from its last copy and stays ready while it holds flags. It reconnects after 1 second, doubling the wait up to 30 seconds, and loads a fresh snapshot. See Edge resilience.
If an edge falls behind
When an edge cannot keep up with the changes, the backend tells it so. The edge keeps its copy, reconnects and loads a full snapshot, which then removes the flags the backend no longer has.
Data flow
A release system in four loops
Each component has a clear job: author, synchronize, evaluate, and observe.
Admin control plane
React UI and REST APIs manage features, stages, contexts, teams, approvals, metrics, and settings.
Streaming update channel
The Rust backend publishes feature snapshots and incremental updates to connected edge nodes over gRPC.
Low-latency edge
Edge nodes evaluate requests from cached rules, deterministic bucketing, ordered criteria, dependencies, and sticky assignments.
Telemetry feedback
Evaluation events, assignments, and metrics flush back to the backend for dashboards, experiments, and rollout governance.
Runtime shape
Backend owns truth. Edge owns speed.
Feature updates move from the backend to edge nodes over long-lived gRPC streams. Evaluations use cached rules, criteria priority, deterministic bucketing, dependencies, and sticky assignment metadata.
Read the component guide in the docs- PostgreSQL-backed configuration and analytics
- React UI for operations, approvals, and metrics
- Edge REST and OFREP endpoints for applications
- Evaluation events sent back in batches for dashboards
Build with ForgeOps LABS
Need feature flag delivery, platform tooling, or rollout automation?
FluxGate shows the kind of end-to-end software ForgeOps LABS builds: backend, UI, infrastructure, integration, and operational workflows.