We’re looking into deepening our understanding of how NServiceBus customers leverage Azure Functions or plan to use Functions in conjunction with NServiceBus-based systems.
Among the things we’d like to learn are:
Have you ever evaluated Azure Functions?
If “Yes,” what were the reasons for evaluation?
Have you decided to adopt/further evaluate Azure Functions?
If “Yes,” what were the main decision drivers?
If “No,” what was the alternative chosen?
How do you use Azure Functions?
What is the primary use case?
What is the time frame for adoption? Are you running Functions in production?
Did you integrate with NServiceBus parts of your system?
What were the main integration pain points?
Please share your thoughts with us and help to shape NServiceBus with Azure Functions experience.
Use the following link to provide your answers.
Great question. Regular Azure Functions are designed to be work as handlers and are invoked by the incoming messages. This the approach the experimental package has taken. That means assuming the constraints of the Functions environment. At the moment, the package doesnot support Sagas with certain limitations. That is something we’ll have to look into when the package moves from experimental into customer’s hands.
Do you have an update on how this is coming and when it might be released?
While I cannot provide any timelines, we’re looking at moving this forward.
Sagas with Functions will work, but there are subtle differences between Azure Service Bus (ASB) and Azure Storage Queues (ASQ). With the current package:
Saga timeouts will work with ASB, but not with ASQ.
Multiple messages targetting the same saga instance can cause sage data contention on the Consumption plan (has to do with the way it scales out).