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.
To test this, I’ve added a Delay action that waits one minute.
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.
There are always a maximum of 2 Logic Apps running at the same time.
In the end, all runs succeed.
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.
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!