Azure Functions

Hello everyone!

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.

Thank you.

Hi Sean,
Is this progressing inside Particular?
Getting a supported set of base libraries like GitHub - tmasternak/NServiceBus.Functions: NServiceBus trigger for Azure Functions sample would be amazing.
Cheers,
Matt

Hi Matt,

It’s on our radar, but no specific date yet. We’ll definitely announce when there’s a preview available for customers to try it out.

Sean,

Do you have an update on how this is coming and when it might be released?

Jeremy

Sean,

I also had another question about NServiceBus’s implementation of Azure Functions. Will they work with Saga’s?

Jeremy

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 does not 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.

Update to my previous response:

Sagas with Functions will work, but there are subtle differences between Azure Service Bus (ASB) and Azure Storage Queues (ASQ). With the current package:

  1. Saga timeouts will work with ASB, but not with ASQ.
  2. 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).

Additional constraints are documented here: Azure Functions with Azure Service Bus • NServiceBus.AzureFunctions.InProcess.ServiceBus • Particular Docs