Concurrency control for push-triggered Logic Apps

Finally! Concurrency control for push triggers has been released!  This is an EXTREMELY useful feature in serverless workflows.  The scalability of your serverless middleware is often in high contrast with backend systems that cannot handle many parallel calls.  With this feature, we don’t need to perform additional plumbing with an intermediate queue to throttle towards these backend applications, the internal Logic Apps engine takes care of this!

Very simple configuration in the Settings section of the HTTP Request trigger.  I’ve specified a maximum of two concurrent calls.

Push 1

To test this, I’ve added a Delay action that waits one minute.

Push 2

With Postman, I fired 10 concurrent HTTP request to this Logic App.  As a result, you see that 2 Logic Apps are running, while the other 8 instances have the status waiting.

Push 3

There are always a maximum of 2 Logic Apps running at the same time.

Push 4

In the end, all runs succeed.

Push 5

I’ve also tested this in combination with a SplitOn trigger.  This works as a charm: the incoming message gets debatched and the child messages are being processed, while respecting the configured concurrency control.

Capture

Smooth!  This concurrency control should always be configured when using push triggers!  SaaS applications and storage destinations often don’t have the same scalability characteristics as your serverless processing engine.  Now you can throttle with just one button click!

Enjoy!

About me

Hi! I’m Toon Vanhoutte, a hands-on Azure architect – based in Belgium – with a big passion for teaching and helping people out. I’m happy to assist you during your Azure journey with high-quality advisory and I would love to teach you Azure’s possibilities via my tailored training courses.

Subscribe to the blog