Skip to content

Bundle standalone runtime in dd-openfeature - #12251

Draft
leoromanovsky wants to merge 3 commits into
leo.romanovsky/openfeature-runtime-corefrom
leo.romanovsky/openfeature-standalone-runtime
Draft

Bundle standalone runtime in dd-openfeature#12251
leoromanovsky wants to merge 3 commits into
leo.romanovsky/openfeature-runtime-corefrom
leo.romanovsky/openfeature-standalone-runtime

Conversation

@leoromanovsky

Copy link
Copy Markdown
Contributor

Motivation

Customers using the Datadog OpenFeature provider without APM still have to load dd-java-agent.jar because configuration polling and event delivery live in agent-owned modules. That keeps an agent deployment and lifecycle in the path even when the customer only wants Feature Flagging.

Changes

This packages the agentless UFC poller, evaluator support, exposure delivery, and flag-evaluation delivery into the published dd-openfeature artifact. The artifact shades its internal Datadog and HTTP implementation dependencies while preserving the OpenFeature SDK as its sole published dependency. When no Java agent is installed and DD_FEATURE_FLAGS_CONFIGURATION_SOURCE=agentless is explicit, the provider claims the standalone runtime, polls configuration, and sends events directly with DD_API_KEY.

The provider still activates an installed Java agent first. If the agent claims the runtime, the bundled implementation does not start, so transport and lifecycle remain agent-owned and no duplicate poller or event writer is created.

Decisions

Standalone activation remains explicit: absence of DD_FEATURE_FLAGS_CONFIGURATION_SOURCE=agentless does not start network work, and remote_config remains agent-only. Direct event delivery deliberately does not probe a local EVP proxy because the standalone process must not imply an Agent dependency.

Validation covers the runtime lifecycle, direct-only transport selection, formatting, SpotBugs, Javadocs, and all API/library tests. A published-artifact test compiles and launches a child JVM with no -javaagent, serves UFC from a local HTTP endpoint, and verifies a real OpenFeature evaluation resolves from the polled configuration.

@leoromanovsky leoromanovsky added comp: openfeature OpenFeature type: feature Enhancements and improvements tag: no release notes Changes to exclude from release notes tag: ai generated Largely based on code generated by an AI or LLM labels Aug 21, 2026 — with ddtool CLI
@datadog-datadog-prod-us1-2

datadog-datadog-prod-us1-2 Bot commented Aug 21, 2026

Copy link
Copy Markdown
Contributor

🎯 Code Coverage (details)
Patch Coverage: 78.95%
Overall Coverage: 78.41% (-0.00%)

This comment will be updated automatically if new data arrives.
🔗 Commit SHA: 37893e4 | Docs | View more details | Give us feedback!

@dd-octo-sts

dd-octo-sts Bot commented Aug 21, 2026

Copy link
Copy Markdown
Contributor

🟢 Java Benchmark SLOs — All performance SLOs passed

Suite Status
Startup 🟢 pass

SLO thresholds are defined here based on automatically generated metrics. A warning is raised when results are within 5% of the threshold.

PR vs. master results
Scenario Candidate master Δ (95% CI of mean)
startup:insecure-bank:iast:Agent 14.84 s 14.64 s [+0.5%; +2.2%] (maybe worse)
startup:insecure-bank:tracing:Agent 13.66 s 13.77 s [-1.5%; -0.1%] (maybe better)
startup:petclinic:appsec:Agent 17.52 s 17.33 s [+0.2%; +1.9%] (maybe worse)
startup:petclinic:iast:Agent 17.45 s 17.55 s [-1.2%; +0.1%] (no difference)
startup:petclinic:profiling:Agent 17.40 s 17.06 s [+0.9%; +3.1%] (maybe worse)
startup:petclinic:sca:Agent 17.39 s 17.27 s [-0.3%; +1.7%] (no difference)
startup:petclinic:tracing:Agent 16.64 s 16.62 s [-0.8%; +1.1%] (no difference)

Commit: 37893e46 · CI Pipeline · Benchmarking Platform UI


Load and DaCapo benchmarks can be triggered manually in the GitLab pipeline. Results will appear in the Benchmarking Platform UI after completion.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

comp: openfeature OpenFeature tag: ai generated Largely based on code generated by an AI or LLM tag: no release notes Changes to exclude from release notes type: feature Enhancements and improvements

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant