I'm looking get in some input on what design patterns those in the community are using when calling (in real-time) external web service APIs. Outbound re-curring patterns are well documented but I'm not finding much on real-time outbound calls. Some I've talked with consume external APIs directly from D365 while some are using a middle-tier abstraction approach. For inbound transactions to D365, having middleware (Logic Apps usually) makes complete sense for abstraction and isolation and I've seen that commonly done. But what about out-bound? Are folks utilizing business events with logic apps to trigger calls out, are you developing custom code to call the Logic App and coding the logic app to place calls externally to have it then return the information requested, or are you doing more direct consumption from D365? Coming from the EA side and just my own development background, I've always preferred that layer of abstraction. There is more work from that perspective but then your not tying your customizations directly to an external endpoint. If changes are needed, the assumption is that in most cases, you only need to change the logic app.
Thoughts?