Azure / azure-sdk-for-go

This repository is for active development of the Azure SDK for Go. For consumers of the SDK we recommend visiting our public developer docs at:
https://docs.microsoft.com/azure/developer/go/
MIT License
1.64k stars 842 forks source link

Support for CosmosDB Change Feed Processors in go? #18615

Open lmorchard opened 2 years ago

lmorchard commented 2 years ago

Feature Request

Azure Cosmos DB supports a Change Feed.

I've found support for Change Feed Processors in the C#, Node.js, and Java flavors of the Azure SDK. But, there doesn't seem to be support for it in this SDK for go.

We have a project that's currently using a Change Feed Processor implemented in C#. We'd like to move it to golang for consistency with other parts of the project.

Thank you!

ealsur commented 2 years ago

Yes, this should be a feature we will eventually have. Priority wise is not critical (like for example failover support), but nonetheless important

anthonysomerset commented 1 year ago

Hi All, this is a blocker for Teleport (https://goteleport.com/) to support Azure Native backends and allow for native hosting of Teleport with Azure environments, would be great if this could get some TLC - thanks

ealsur commented 1 year ago

@anthonysomerset can you clarify a bit what are the requirements? Is change feed processor or change feed queries (also known as change feed pull model) what is required?

CFP is going to be a long ways off, there are higher and more critical items to deliver first.

anthonysomerset commented 1 year ago

Hi @ealsur the teleport folks would have to elaborate, i am just an interested potential teleport customer/user that only uses Azure and would like azure native support for Teleport to be able to take next steps with their product - they just stated that to support CosmosDB they need Change Feed support in the Go SDK in order to bring the feature through - https://github.com/gravitational/teleport/issues/6117#issuecomment-1564381191

ealsur commented 1 year ago

Thanks. Change Feed is a service API and the Processor is just one way other SDKs have enabled their consumption but not the only one (https://learn.microsoft.com/en-us/azure/cosmos-db/change-feed#working-with-change-feed). The Processor is meant for a very specific scenario which is an automatic load balancing and distribution across multiple machines with book keeping in a secondary container. There are other ways, like https://learn.microsoft.com/en-us/azure/cosmos-db/nosql/change-feed-pull-model?tabs=dotnet. This issue is for tracking the Processor. If that is the one you want, then follow this issue. If you instead need the Pull Model please create a different issue for tracking. It all depends on your scenario.

mjaow commented 1 year ago

@ealsur looks it doesn't support golang even in pull mode, right? So what might be suggestion for those golang users? Would we have to use mongo db api since it supports changestream for golang?

ealsur commented 1 year ago

@mjaow At the moment Change Feed cannot be consumed from the NoSQL API Go SDK. It is available in other languages and through integrations, like Azure Functions.

SuperMohit commented 1 year ago

I see that there is no SDK for Go, but do we have a REST doc(swagger), that we can use, meanwhile?

github-actions[bot] commented 3 months ago

Hi @lmorchard, we deeply appreciate your input into this project. Regrettably, this issue has remained unresolved for over 2 years and inactive for 30 days, leading us to the decision to close it. We've implemented this policy to maintain the relevance of our issue queue and facilitate easier navigation for new contributors. If you still believe this topic requires attention, please feel free to create a new issue, referencing this one. Thank you for your understanding and ongoing support.