locked
Messaging between logic apps RRS feed

  • Question

  • Hi All, 

    I have seen a few reference architectures where Azure Service Bus has been used to decouple a number of logic apps.

    On scenario is an ordering system where logic app 1 processes an order, logic app 2 handles the picking and logic app 3 handles order dispatch. Each logic app has a similar structure triggered by a service bus queue or topic and ends by sending a message to another. 

    I have used this pattern in the past but have had to modify the service bus trigger as the polling cost started to add up. I would like to try a more reactive approach however the service bus to event grid approach (https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-to-event-grid-integration-concept) also currently is a bit pricey.

    My question is since my messages are always below 64kb and I don't require ordering or duplicate detection would there be any reason not to used event grid topics as opposed to service bus. i.e. have my logic apps begin with and grid trigger and end by publishing to another grid.

    As a side note I like the exponential retry policy that event grid has and am not aware of any easy way of doing this exponential retry with service bus and logic apps. I use the peak-lock template where if there is a failure the message is back on the queue and picked up pretty much straight way. 

    Thanks in advance


    Wednesday, November 20, 2019 3:21 PM

Answers

  • That is definitely possible. Though Event Grid is intended for lightweight "event" payloads, hence the 64KB limit, can still be used as a message broker without some features like you've mentioned but there are certain things you have to take into account

    • Events that aren't delivered in 24 hours are expired
    • In case of continuous failures, expect delayed delivery.
    • Dead lettered events are sent to a storage account, if configured (off by default)

    Unfortunately, there is no built-in way to tackle this as of now. There is a feature request on UserVoice to extend Event Grid support in Service Bus to the Standard tier which you could up vote for it to gain traction.

    Alternatives I believe you could consider to workaround this would be

    Thursday, November 21, 2019 4:38 AM

All replies

  • That is definitely possible. Though Event Grid is intended for lightweight "event" payloads, hence the 64KB limit, can still be used as a message broker without some features like you've mentioned but there are certain things you have to take into account

    • Events that aren't delivered in 24 hours are expired
    • In case of continuous failures, expect delayed delivery.
    • Dead lettered events are sent to a storage account, if configured (off by default)

    Unfortunately, there is no built-in way to tackle this as of now. There is a feature request on UserVoice to extend Event Grid support in Service Bus to the Standard tier which you could up vote for it to gain traction.

    Alternatives I believe you could consider to workaround this would be

    Thursday, November 21, 2019 4:38 AM
  • Thank you very much PramodValavala-MSFT
    Sunday, November 24, 2019 3:03 AM