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

Comments

Projects
None yet
@christopheranderson
Copy link
Member

christopheranderson commented Aug 8, 2016

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

This comment has been minimized.

Copy link
Contributor

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. Azure/azure-webjobs-sdk#529) tracking this.

@ReadifySamSiu

This comment has been minimized.

Copy link

ReadifySamSiu commented Nov 13, 2016

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

@AranVinkItility

This comment has been minimized.

Copy link

AranVinkItility commented Dec 1, 2016

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

@danbueno20

This comment has been minimized.

Copy link

danbueno20 commented Jun 1, 2017

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

This comment has been minimized.

Copy link

mikhailshilkov commented Jun 9, 2017

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

This comment has been minimized.

Copy link

Vossekop commented Jul 24, 2017

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

@DaanWasscher

This comment has been minimized.

Copy link

DaanWasscher commented Aug 2, 2017

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

This comment has been minimized.

Copy link

JasonBSteele commented Jan 3, 2018

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

@syedhassaanahmed

This comment has been minimized.

Copy link

syedhassaanahmed commented Feb 9, 2018

+1 A blocker for us

@mcupito

This comment has been minimized.

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

This comment has been minimized.

Copy link

mikhailshilkov commented Mar 27, 2018

Nah, it's almost 3 years if you consider Azure/azure-webjobs-sdk#529

@rfolkes

This comment has been minimized.

Copy link

rfolkes commented Apr 12, 2018

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

@stevenlivz

This comment has been minimized.

Copy link

stevenlivz commented Apr 13, 2018

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

This comment has been minimized.

Copy link
Member

brettsam commented Apr 26, 2018

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

@paulbatum

This comment has been minimized.

Copy link
Member

paulbatum commented Apr 26, 2018

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

This comment has been minimized.

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

This comment has been minimized.

Copy link

martinfletcher commented Jun 22, 2018

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

This comment has been minimized.

Copy link

JasonBSteele commented Jul 13, 2018

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

@paulbatum

This comment has been minimized.

Copy link
Member

paulbatum commented Jul 25, 2018

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

@JasonBSteele

This comment has been minimized.

Copy link

JasonBSteele commented Oct 8, 2018

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

This comment has been minimized.

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

This comment has been minimized.

Copy link

konrad-powazka commented Oct 17, 2018

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

@nelsonlaquet

This comment has been minimized.

Copy link

nelsonlaquet commented Oct 22, 2018

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

This comment has been minimized.

Copy link

davidrevoledo commented Nov 5, 2018

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

@JasonBSteele

This comment has been minimized.

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

This comment has been minimized.

Copy link

delradie commented Nov 13, 2018

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

This comment has been minimized.

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.

@moueldi

This comment has been minimized.

Copy link

moueldi 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

This comment has been minimized.

Copy link

davidrevoledo commented Jan 10, 2019

@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. 💯

@moueldi

This comment has been minimized.

Copy link

moueldi 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

This comment has been minimized.

Copy link

koenveevee commented Feb 8, 2019

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

This comment has been minimized.

Copy link

bartdk-be commented Feb 15, 2019

*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

This comment has been minimized.

Copy link

juchom commented Mar 8, 2019

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

@brettsam

This comment has been minimized.

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: Azure/azure-webjobs-sdk#529 (comment)

Assigning this to sprint 45 for initial design and scoping

@brettsam brettsam closed this Mar 8, 2019

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.