Use Dekaf by default for Kafka on all target frameworks#4038
Use Dekaf by default for Kafka on all target frameworks#4038marcschier wants to merge 4 commits into
Conversation
There was a problem hiding this comment.
Pull request overview
Note
Copilot couldn't run its full agentic review because it didn't start before the timeout. Make sure your repository has a runner available, or add a copilot-code-review.yml file specifying one with the runs-on attribute. See the docs for more details.
This PR upgrades the Kafka transport to Dekaf 1.7.0 and standardizes on the managed Dekaf adapter across all supported target frameworks, removing the TFM-specific Confluent.Kafka / native librdkafka fallback.
Changes:
- Upgrade Dekaf from 1.2.0 to 1.7.0 and remove Confluent.Kafka usage.
- Make Dekaf adapter/factory and guard tests compile/run on all target frameworks (incl. .NET Framework).
- Refresh Kafka / NativeAOT documentation and align comments with the new single-client approach.
Reviewed changes
Copilot reviewed 17 out of 17 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
| tests/Opc.Ua.PubSub.Kafka.Tests/KafkaIntegrationDockerTests.cs | Updates integration-test comments to reflect Dekaf-only behavior. |
| tests/Opc.Ua.PubSub.Kafka.Tests/KafkaClientAdapterGuardTests.cs | Removes net10-only compile guard so guard tests cover all TFMs. |
| tests/Opc.Ua.Aot.Tests/Opc.Ua.Aot.Tests.csproj | Updates AOT test project comment to reflect Dekaf usage beyond net10. |
| src/Opc.Ua.PubSub.Kafka/Opc.Ua.PubSub.Kafka.csproj | Switches package reference to Dekaf for all TFMs; removes Confluent.Kafka conditional. |
| src/Opc.Ua.PubSub.Kafka/NugetREADME.md | Updates NuGet README to describe Dekaf-only client and AOT story. |
| src/Opc.Ua.PubSub.Kafka/KafkaTlsOptions.cs | Documentation tweaks to remove librdkafka-specific wording. |
| src/Opc.Ua.PubSub.Kafka/KafkaQualityOfService.cs | Documentation tweak to remove librdkafka-specific wording. |
| src/Opc.Ua.PubSub.Kafka/KafkaConnectionOptions.cs | Documentation tweaks to remove librdkafka-specific wording. |
| src/Opc.Ua.PubSub.Kafka/KafkaBrokerTransport.cs | Documentation tweak to remove Confluent-specific wording. |
| src/Opc.Ua.PubSub.Kafka/Internal/DekafKafkaClientFactory.cs | Removes net10-only compile guard for Dekaf factory. |
| src/Opc.Ua.PubSub.Kafka/Internal/DekafKafkaClientAdapter.cs | Removes net10-only compile guard; adds .NET Framework UTF-8 header decoding path. |
| src/Opc.Ua.PubSub.Kafka/Internal/ConfluentKafkaClientFactory.cs | Removes Confluent factory implementation (no longer needed). |
| src/Opc.Ua.PubSub.Kafka/Internal/ConfluentKafkaClientAdapter.cs | Removes Confluent adapter implementation (no longer needed). |
| src/Opc.Ua.PubSub.Kafka/EventIds.cs | Removes Confluent adapter event id constant. |
| src/Opc.Ua.PubSub.Kafka/DependencyInjection/KafkaTransportServiceCollectionExtensions.cs | Registers Dekaf factory on all TFMs; removes TFM branching. |
| docs/PubSub.md | Refreshes PubSub docs to reflect Dekaf-only and updated NativeAOT positioning. |
| Directory.Packages.props | Upgrades Dekaf version and adjusts a few dependency pins. |
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## master #4038 +/- ##
==========================================
- Coverage 73.86% 73.45% -0.42%
==========================================
Files 1345 1347 +2
Lines 180038 180385 +347
Branches 31678 31751 +73
==========================================
- Hits 132993 132495 -498
- Misses 36290 37171 +881
+ Partials 10755 10719 -36
🚀 New features to boost your workflow:
|
Description
Upgrade the Kafka transport from Dekaf 1.2.0 to 1.7.0 and use the pure-managed Dekaf adapter by default on every supported target framework.
net472,net48,netstandard2.1,net8.0,net9.0, andnet10.0.Confluent.Kafkaadapter and factory as an opt-in DI backend throughWithConfluentKafkaClient().net10.0for the default Dekaf backend; the opt-in Confluent backend remains JIT-only.Validation:
net48andnet10.0.dotnet publish tests\Opc.Ua.Aot.Tests\Opc.Ua.Aot.Tests.csproj -c Release -r win-x64 --self-contained trueRelated Issues
None.
Checklist