Absolutely, Tony. Here's a rational breakdown of your architecture options in a comparison table that weighs reliability, complexity, and infrastructure overhead:
Option | Trigger Type | Infra Overhead | Reliability | Metadata Flexibility | Ease of Scaling | Notes |
---|---|---|---|---|---|---|
Classic Blob Trigger | Polling | Low | โ Risk of missed events | โ Fetchable from blob | ๐ง Limited | Simple to implement but not recommended for production workloads |
Event Grid โ Azure Function | Push via Event Grid | Moderate | โ Highly reliable | โ Included in event or fetchable | โ Excellent | Ideal if Event Grid is allowedโcleanest and most reactive |
ADF โ Function (Direct Call) | Web activity | Low | โ Can fetch from blob | Lean setup, but lacks retry and decoupling | ||
ADF โ Logic App โ Queue | HTTP + Connector | Moderate (no code) | โ Durable | โ In message payload | โ Flexible | No Function needed; easy to evolve with connectors |
ADF โ Function โ Storage Queue | Web activity | Moderate | โ Durable | โ In message payload | โ Flexible | Good reliability and separation of concerns |
ADF โ Function โ Service Bus | Web activity | Higher | โ Durable + rich features | โ In message payload | โ Very flexible | Overkill unless you need topics, sessions, or dead-lettering |
- โ Best long-term: Event Grid โ Function (clean, reactive, minimal glue)
- ๐ช Best short-term: ADF โ Logic App โ Storage Queue (low-code + reliable)
- ๐ฏ Simplest to start: ADF โ Function (direct call), with option to grow later
Want help picking one for your workshop narrative, or building a slide that shows how you can migrate from short-term to ideal architecture over time? I can sketch that next.