feat(openfeature): add direct flagevaluation fallback - #12204
feat(openfeature): add direct flagevaluation fallback#12204gh-worker-dd-mergequeue-cf854d[bot] merged 21 commits into
Conversation
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
…xposure-egress # Conflicts: # communication/src/main/java/datadog/communication/BackendApiFactory.java # products/feature-flagging/feature-flagging-agent/src/main/java/com/datadog/featureflag/FeatureFlaggingSystem.java # products/feature-flagging/feature-flagging-lib/src/main/java/com/datadog/featureflag/ExposureWriterImpl.java
|
🎯 Code Coverage (details) 🔗 Commit SHA: 9b8d758 | Docs | View more details | Give us feedback! |
🟢 Java Benchmark SLOs — All performance SLOs passed
PR vs. master results
Commit: Load and DaCapo benchmarks can be triggered manually in the GitLab pipeline. Results will appear in the Benchmarking Platform UI after completion. |
There was a problem hiding this comment.
Direct flag-evaluation delivery still negotiates gzip because IntakeApi leaves Accept-Encoding unset when compression is disabled, allowing OkHttp to add gzip automatically. This defeats the explicit no-compression contract on every new direct or fallback route, although the local EVP path correctly sends identity.
🤖 Datadog Autotest · Commit 5916539 · What is Autotest? · @DataDog review to ask questions · Any feedback? Reach out in #autotest
…ct-flagevaluation-egress # Conflicts: # products/feature-flagging/feature-flagging-lib/src/main/java/com/datadog/featureflag/AgentlessFeatureFlagBackendApi.java # products/feature-flagging/feature-flagging-lib/src/main/java/com/datadog/featureflag/ExposureBackendApiFactory.java # products/feature-flagging/feature-flagging-lib/src/test/java/com/datadog/featureflag/AgentlessFeatureFlagBackendApiTest.java # products/feature-flagging/feature-flagging-lib/src/test/java/com/datadog/featureflag/FeatureFlagBackendApiFactoryTest.java
|
Hi! 👋 Thanks for your pull request! 🎉 To help us review it, please make sure to:
If you need help, please check our contributing guidelines. |
…ct-flagevaluation-egress # Conflicts: # products/feature-flagging/feature-flagging-lib/src/test/java/com/datadog/featureflag/AgentlessFeatureFlagBackendApiTest.java # products/feature-flagging/feature-flagging-lib/src/test/java/com/datadog/featureflag/FeatureFlagBackendApiFactoryTest.java
…ct-flagevaluation-egress
…ct-flagevaluation-egress
sarahchen6
left a comment
There was a problem hiding this comment.
A few small clean-up comments, but otherwise looks good!
There was a problem hiding this comment.
Ambiguously accepted batches can still be replayed directly through internal HTTP retries or exposure-buffer reuse. Agentless activation can also retain an exposure worker that exits immediately afterward, disabling delivery.
🤖 Datadog Autotest · Commit 6616b0c · What is Autotest? · @DataDog review to ask questions · Any feedback? Reach out in #autotest
…lagevaluation-egress # Conflicts: # products/feature-flagging/feature-flagging-agent/src/main/java/com/datadog/featureflag/FeatureFlaggingSystem.java # products/feature-flagging/feature-flagging-agent/src/test/java/com/datadog/featureflag/FeatureFlaggingSystemTest.java # products/feature-flagging/feature-flagging-lib/src/main/java/com/datadog/featureflag/ExposureWriterImpl.java # products/feature-flagging/feature-flagging-lib/src/test/java/com/datadog/featureflag/ExposureWriterTests.java
|
/merge |
|
View all feedbacks in Devflow UI.
The expected merge time in
|
315dd06
into
master
Motivation
The base PR gives exposure events direct EVP capability. Agentless Feature Flags also need direct EVP capability for aggregate flagevaluation events when no compatible local receiver exists.
flowchart TD A[Agentless Feature Flags] --> E[Exposure writer from PR 12195] A --> F[Flagevaluation writer in this PR] E --> ER{Compatible local EVP route?} F --> FR{Compatible local EVP route?} ER -->|Yes| L[Local EVP proxy] FR -->|Yes| L ER -->|No, API key available| DE[Direct EVP<br/>/api/v2/exposures] FR -->|No, API key available| DF[Direct EVP<br/>/api/v2/flagevaluation] L --> P[Event Platform] DE --> P DF --> PChanges and Decisions
This stacked PR retains direct EVP exposure delivery from PR #12195 and adds direct EVP flagevaluation delivery.
/api/v2/exposuresand/api/v2/flagevaluationas separate direct routes.