yevhen / Streamstone

Event store for Azure Table Storage
Other
395 stars 64 forks source link

Migrate from Microsoft.Azure.Cosmos.Table toAzure.Data.Tables #64

Closed goldsam closed 12 months ago

goldsam commented 2 years ago

The Microsoft.Azure.Cosmos.Table package has been deprecated in favor of Azure.Data.Tables. Consider migrating to support Azure.Data.Tables.

jjhayter commented 2 years ago

The Microsoft.Azure.Cosmos.Table package has been deprecated in favor of Azure.Data.Tables. Consider migrating to support Azure.Data.Tables.

I am not sure if you realized the actual scope of this request. I most certainly share the same sentiment, however before making that very same request I wanted to see what that would entail so in other words, I am not trying to beat you down or admonish you.

I've been going through this codebase for the last 3 days in my private repo as I wanted to port an old POC I had and get it working with the new Azure Sdk. I can assure you this is close to a fundamental re-write. The primary cause is that AzDT uses the RestClient, as well as a slew of Azure.Core objects, under the hood. EntityProperty, PropertyMap, EntityProperties, Incudes, TableEntity, EntityOperation, TableOperation and many more would need to be completely removed or re-tooled. You can get a better idea of how I made those deductions by reading into the migration guide if you have not already: https://github.com/Azure/azure-sdk-for-net/blob/Azure.Data.Tables_12.6.1/sdk/tables/Azure.Data.Tables/MigrationGuide.md

That is still good news, in the sense of reducing the codebase for SS, as it was doing a lot of intercession to abstract those pesky OperationContext responsibilities away to make a clean usage of WATS as an ES. Reviewing the design and implementation guidelines the Azure Sdk Team adheres to, available here: https://azure.github.io/azure-sdk/dotnet_implementation.html, revealed to me at the very least that a lot of effort would be needed to make this package compliant; not an easy undertaking.

Impossible? Most certainly not! I have observed several repos with similar requests, so this is simply a PSA for the community members to understand what it means to make these types of requests and if it should be done.

goldsam commented 2 years ago

@Zer010 That's fair. However, this code base is not huge.

@yevhen Would you be open to accepting a PR if I invested the work?

jjhayter commented 2 years ago

Yeah I would be happy to help on the PR

yevhen commented 2 years ago

@goldsam @Zer010 Hi guys! Sorry for late reply, was on vacation.

Of course, I'll be happy to accept the PR 🤗

cbrown11 commented 1 year ago

Has the work been done or is there a plan still to move to Azure.Data.Tables?

yevhen commented 1 year ago

Nope. No plans yet. Will be happy to accept PR) If someone can concentrate all api related stuff into an abstraction for which later could be created an alternative implementation, it would be a huge step forward for resolving this issue

Greybird commented 1 year ago

@yevhen , I think https://github.com/waywedo/waywedo.Streamstone has a migration to Azure.Data.Tables, which seem to be complete. I did not test it, but you might be interested into this fork.

yevhen commented 12 months ago

Done! 3.0.0 is on nuget! Kudos to @sergiojrdotnet for the amazing work he did on this issue!