Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support Service Bus queues and topics which use sessions #563

Closed
christopheranderson opened this issue Aug 8, 2016 · 34 comments
Closed
Milestone

Comments

@christopheranderson
Copy link
Contributor

From uservoice - https://feedback.azure.com/forums/355860-azure-functions/suggestions/13882992-support-for-session-enabled-azure-service-bus-queu

Currently the queue/subscription trigger only works with queues and subscriptions that does not use sessions (RequiresSession = false). It would be very useful if the runtime would detect that sessions are enabled and adapt accordingly. As far as I can see, the actual function code would not even have to be aware.

@christopheranderson christopheranderson added this to the backlog milestone Aug 8, 2016
@mathewc
Copy link
Member

mathewc commented Aug 9, 2016

FYI: This support would have to be added to the core WebJobs SDK, and we have several existing backlog items in that repo (e.g. https://github.com/Azure/azure-webjobs-sdk/issues/529) tracking this.

@ReadifySamSiu
Copy link

any update on this? any ETA? it's kind of a blocker for us now. many thanks!

@AranVinkItility
Copy link

Blocker for me as well, I cannot implement some of our core functionality in Functions if this is missing.

@danbueno20
Copy link

Same here. We are using Functions to handle EventSourced-object events. There are a few occasions where an action creates multiple events for the same object and they are all put in the queue in quick succession. I want to handle messages in parallel and we've had multiple cases of race conditions causing issues. I was looking for a way to only handle multiple messages for various objects but only one message per object. Looking at sessions, the hope is that using our SourceId (unique identifier) as the SessionId would solve our problem. If my understanding is correct, then we need this functionality. This is a huge drawback right now.

@mikhailshilkov
Copy link

Blocker for us too. We use session'ed queues / topics and would like to migrate away from custom service bus handling code towards Function App. Please prioritize.

@Vossekop
Copy link

Same here, it is the only blocking issue from migrating our worker roles to function apps.

@DaanWasscher
Copy link

This feature is a real must have for many scenarios and is blocking me from using Azure Functions at this point.

@christopheranderson is there any ETA on this top 10 user voice feature?

@JasonBSteele
Copy link

Must have for me too. Is there a good workaround?

@syedhassaanahmed
Copy link

+1 A blocker for us

@mcupito
Copy link

mcupito commented Mar 27, 2018

It's been on the backlog for (over) a year and a half - should we stop asking? haha

@mikhailshilkov
Copy link

Nah, it's almost 3 years if you consider https://github.com/Azure/azure-webjobs-sdk/issues/529

@rfolkes
Copy link

rfolkes commented Apr 12, 2018

This would be a blocker for us as well, really unfortunate for event handling scenarios

@stevenlivz
Copy link

I'd even like the ability for it just to work even if it ignore the sessions rather than error - that way we can share the queue with some other consumers that do support session (some amqp clients).

@brettsam brettsam removed this from the Unknown milestone Apr 26, 2018
@brettsam
Copy link
Member

This has been getting more requests -- I'm going to clear the milestone so we can discuss it further.

@paulbatum
Copy link
Member

I wish we had the bandwidth to work on this :( I know its blocking many of you. But there are so many other things that are blocked on functions v2 going into general availability and we can't afford to delay that even further by picking up work items like this. So I still can't provide any ETA.

However I will note that the heightened activity on this issue in the recent months makes it clear it needs to be treated with higher priority.

@paulbatum paulbatum added this to the Backlog milestone Apr 26, 2018
@rfolkes
Copy link

rfolkes commented Apr 27, 2018

ok, thanks for the transparency, hoping for you to be able to prioritize this in the future then

@martinfletcher
Copy link

This really is a massive blocker for us, as we require FIFO of messages with topics using functions....

What is the release date for functions v2 runtime - Is there a finger in the air date that this may get addressed by after the v2 release?

@JasonBSteele
Copy link

This has hit me again today. Can we get some feedback from MS that this is at least being worked on?

@paulbatum
Copy link
Member

@JasonBSteele At this time, I have no further updates beyond my last comment above.

@JasonBSteele
Copy link

We are currently working around it by using a Logic App but it is costing us £800 a month to run it due to the volume of messages and the 30 second polling.

@vhe1
Copy link

vhe1 commented Oct 13, 2018

This is your friendly nagging post :-)

We just couldn't use azure functions in quite a big project because of that, so how are things?

For message based architectures, sessioned queues with their ability to

  • guarantee exclusive access to the session during function invocation, removing the need for locks in many scenarios
  • accumulate and process session state via GetState and SetState,

using Azure funcions for both would really be a big enabler for serverless architectures.

Right now I feel sessions are mostly limited to old style processors and call/return. I think ServiceBus is really the most powerful and flexible composing mechanism you have. Pity that the only a subset can be used in a serverless environment.

@konrad-powazka
Copy link

We need it badly as well. Any plans to implement it?

@nelsonlaquet
Copy link

In the meantime, I think it's important to clearly mark this as a limitation in the docs. Since sessions are a pretty standard feature of the message bus, anyone would assume that "Azure functions support the message bus" implies it supports message bus sessions.

@davidrevoledo
Copy link

This is a limitation, any ETA for this to be implemented ?

@JasonBSteele
Copy link

JasonBSteele commented Nov 7, 2018

There is some hope as the user voice for this feature https://feedback.azure.com/forums/355860-azure-functions/suggestions/13882992-support-for-session-enabled-azure-service-bus-queu was updated on Oct 18 2018 to say that the work has been planned.

@delradie
Copy link

The uservoice item just says planned. Given the comments about backlogged work (trust me, I understand, I'm currently on refactoring work that's been on our critical list for 2 years) I'm guessing this isn't going to be in the next couple of weeks?

It's unfortunately a huge blocker for us moving away from legacy features. How have other people worked around it?

@davidrevoledo
Copy link

davidrevoledo commented Nov 13, 2018

@delradie Currently I'm using a webjob and pooling manually from the session as for me ordering is a requirement to process the queue, the problem is that I need to run the code in a serverless fashion with an autoscaling a quite more aggresive than a webjob scaling out rules Consumption plan would be perfect for me. I'm not aware of any workaround here.

@medevod
Copy link

medevod commented Jan 10, 2019

@davidrevoledo You can try this fork: https://github.com/moueldi/azure-webjobs-sdk
I had a new project called Microsoft.Azure.WebJobs.Extensions.ServiceBusSessions.
It could be published as a new nuget package.
Original version of servicebus extensions and this new package can be used together

@davidrevoledo
Copy link

@moueldi awesome I was trying to do something similar but you are much more advanced, please Humbly with my limitations I offer you all the help you need. 💯

@medevod
Copy link

medevod commented Jan 14, 2019

@davidrevoledo thanks!
At the moment i'm wating some feedbacks of my implementation.
Webjob ServiceBus feature is coupled with WebJobSdk core project.
It's difficult to add new feature without refactoring.

So, i tried another approach by adding new project without changing common code.
That may not the best way for a Pull request, but the feature works for me.
I could publish a public nuget package as extension of Microsoft.Azure.WebJobs package

@koenveevee
Copy link

Any update on foreseen availability of this feature?
We could really use this in order to partition messages by having an affinity based on a number of fields in the message.

@bartdk-be
Copy link

*bump
For a special case we need ordered delivery as well.
Any update on when we can epxect sessionId support in functions ? (or when it will be added to the documentation :-/ )

@juchom
Copy link

juchom commented Mar 8, 2019

just it the issue too... any chance to have some info?

@brettsam
Copy link
Member

brettsam commented Mar 8, 2019

I'm going to close this issue as we have another one tracking the work, which will happen in the WebJobs SDK repo. See the latest comment here: https://github.com/Azure/azure-webjobs-sdk/issues/529#issuecomment-469821143

Assigning this to sprint 45 for initial design and scoping

@brettsam brettsam closed this as completed Mar 8, 2019
maiqbal11 pushed a commit that referenced this issue Nov 1, 2019
@ghost ghost locked as resolved and limited conversation to collaborators Jan 2, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests