Plan for workflow runs, not for MLLP
- The connector isn't the bottleneck. The MLLP layer handled over 80,000 messages per second in our tests; a Logic Apps run costs about 1,000 times more.
- One Logic Apps instance ran about 100 workflow runs per second, shared by its workflows: roughly 7–8 million messages a day. A large hospital sends around 100,000 to 1,000,000 a day. Measure on your plan with your real workflows.
- More connections don't add throughput on one instance; they queue, so latency grows.
Scale out
- Run more instances behind a TCP load balancer: gateway replicas (the Bicep sets minimum and maximum replicas), or Logic App instances that can listen. Each connection stays on one instance, so MLLP's one-message-at-a-time order holds per connection.
- Workflow mode keeps the connection on the instance that received the message, and Send acknowledgement runs there. If that instance restarts, the sender sees the connection drop and resends, which is normal MLLP behaviour.
- Prefer stateless workflows in Workflow mode for fast replies, and keep
responseTimeoutSecondsbelow the sender's ACK timeout. - Auto mode on stateful workflows ACKs once the run is saved; the actions run afterwards.