OpenFeature Integration
All FeatureSignals SDKs ship with an OpenFeature provider, giving you a vendor-neutral API for feature flag evaluation.
How It Works
Each SDK includes a local provider that bridges the FeatureSignals client to the OpenFeature API:
- The FeatureSignals client connects to the server, fetches flags, and keeps a local cache.
- The OpenFeature provider wraps that client and resolves every evaluation from the local cache — no per-evaluation network calls.
- Client lifecycle events (flag updates, errors) are bridged to OpenFeature provider events.
Go
go
import (
fs "github.com/featuresignals/sdk-go"
of "github.com/open-feature/go-sdk/openfeature"
)
client := fs.NewClient("fs_srv_...", "production")
of.SetProviderAndWait(fs.NewProvider(client))
ofClient := of.NewClient("my-service")
enabled, _ := ofClient.BooleanValue(context.Background(), "dark-mode", false, of.EvaluationContext{})Node.js
typescript
import { FeatureSignalsClient, FeatureSignalsProvider } from "@featuresignals/node";
import { OpenFeature } from "@openfeature/server-sdk";
const fsClient = new FeatureSignalsClient("fs_srv_...", {
envKey: "production",
});
await OpenFeature.setProviderAndWait(new FeatureSignalsProvider(fsClient));
const client = OpenFeature.getClient();
const enabled = await client.getBooleanValue("dark-mode", false);Resolution Details
| Field | Value on Success | Value on Error |
|---|---|---|
value | The resolved flag value | The default value |
reason | CACHED | ERROR |
errorCode | — | FLAG_NOT_FOUND or TYPE_MISMATCH |