akkadotnet / Alpakka

Akka Streams Connectors - Alpakka

Home Page:https://alpakka.getakka.net/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Akka.Streams.EventHubs uses a deprecated Azure SDK (WindowsAzure.ServiceBus 6.2.0)

wesselkranenborg opened this issue · comments

Version Information
Version of Akka.NET? N/A
Which Akka.NET Modules? Akka.Streams.EventHubs

Describe the bug
It's not actually a bug but a maintenance request as the Akka.Streams.EventHubs package is using SDK WindowsAzure.ServiceBus 6.2.0. In August 2017 a new SDK version was released by Microsoft to replace this SDK: Microsoft.Azure.ServiceBus. This SDK is however also already replaced by Azure.Messaging.EventHubs since October 2020.

Expected behavior
Upgrade to the latest version of Azure.Messaging.EventHubs SDK

We now switched to using the Kafka protocol. You can enable that on EventHubs which also works fine.

@eaba let's work on switching this over

@eaba let's work on switching this over

On it!

Hi,

Any update on this issue?
I have an issue which I think is similar topic. I have an Akka.Net project that targeting .Net 6, but when I added the latest beta version of Akka.Streams.EventHub, my build throws conflict warning because the dependency libraries such as Microsoft.Azure.ServiceBus.EventProcessorHost and WindowsAzure.ServiceBus are dependent on .Net Framework.

Will this update solve the issue? Or any other solutions?
Thank you.

@anggiputper can you post the error message from NuGet?

Sure! I have not tried to run the project, so it is just compile warning.

warning NU1701: Package 'Microsoft.Azure.ServiceBus.EventProcessorHost 5.0.1' was restored using '.NETFramework,Version=v4.6.1, .NETFramework,Version=v4.6.2, .NETFramework,Version=v4.7, .NETFramework,Version=v4.7.1, .NETFramework,Version=v4.7.2, .NETFramework,Version=v4.8' instead of the project target framework 'net6.0'. This package may not be fully compatible with your project. warning NU1701: Package 'WindowsAzure.ServiceBus 6.2.2' was restored using '.NETFramework,Version=v4.6.1, .NETFramework,Version=v4.6.2, .NETFramework,Version=v4.7, .NETFramework,Version=v4.7.1, .NETFramework,Version=v4.7.2, .NETFramework,Version=v4.8' instead of the project target framework 'net6.0'. This package may not be fully compatible with your project.

This is not as simple as it sounds, in Azure.Messaging.EventHub, Microsoft basically changed the whole API surface, the only way to support this without creating a lot of headaches for all our users is to basically create a "versioned" EventHub plugin for each of the NuGet namespace changes.

I haven't looked into this, but we might still able to support the Microsoft.Azure.ServiceBus.

We'll try to support it, but this will take a long time to develop.

What I'm proposing is this:

  • We will leave the Akka.Streams.Azure.EventHub NuGet package for the old package that uses the WindowsAzure.ServiceBus NuGet package,
  • Create a new Akka.Streams.Azure.EventHub.V4 NuGet package that supports Microsoft.Azure.ServiceBus only if there are a huge request for this. This package is, after all, will be deprecated really soon. If the API is still compatible with the old SDK, we might get away with copying over the old project and apply a refactor, no promises.
  • Create a new Akka.Streams.Azure.EventHub.V5 NuGet package that supports Azure.Messaging.EventHubs, this will take some time to do, its basically creating a whole new module/plugin.

We've decided to update the current implementation to Microsoft.Azure.EventHubs and maybe create a separate NuGet package for Azure.Messaging.EventHubs.

Support added with the new Akka.Streams.Azure.EventHub.V5 package.