Copyright (c) 2026 MindMesh Academy. All rights reserved. This content is proprietary and may not be reproduced or distributed without permission.
4.3. Reflection Checkpoint
The nervous system is wired: commands ride the custody chain, facts fan out through filtered routes, and trigger-driven glue reacts to both without a server in sight.
Key Takeaways
- Classify the payload first: commands needing guaranteed processing → Service Bus (pull, peek-lock, DLQ, sessions); facts needing reactive fan-out → Event Grid (push, filters, 24h retry then storage dead-letter) — and remember they compose, with Event Grid subscriptions feeding Service Bus queues.
- The custody chain never loses work: peek-lock + complete/abandon, MaxDeliveryCount, then the DLQ — which nothing drains automatically; build the repair reader.
- At-least-once delivery is universal — change feed, Service Bus, Event Grid — so every handler you write for this exam must be idempotent.
- One trigger per function, bindings for everything else; binding expressions replace SDK boilerplate for simple reads/writes, and connections name app settings, never literals.
- Choose hosting plans by keyword: cost + tolerance for cold starts → Consumption; no cold starts / VNet + prewarmed → Premium; scale-to-zero with faster scale and VNet → Flex Consumption; existing plan → Dedicated.
Connecting Forward
Phase 5 wraps the whole architecture in its cross-cutting concerns. The Key Vault references we've been gesturing at since 3.1.3 get their full story — including the secret-rotation flow built from this phase's Event Grid + Functions — followed by App Configuration, OpenTelemetry's distributed traces across every service we've deployed, and the KQL to interrogate what they emit.
Self-Check Questions
- A document-processing pipeline must react to blob uploads, guarantee each document is processed exactly once from the business perspective, and scale workers with backlog. Assign roles to Event Grid, Service Bus, KEDA, and idempotency — and explain why all four are needed.
- Two functions share a queue: one on Consumption, one on Premium. Under identical burst load, how do their first-invocation latencies and costs differ, and which scenario keywords would select each?
Written byAlvin Varughese
Founder•18 professional certifications