Scan with Phone

Scan to instantly open and share this page on your mobile device.

Link copied to clipboard!

Group 3: Serverless / Event Compute

This group handles event-driven execution. You PAY ~ proportional to events × duration. Goal: minimize idle infrastructure. Members: Azure Functions, Durable Functions (extension), Logic Apps.

Services & Core Identity

Azure Functions

Code-first functions triggered by events. Fine control over runtime, languages (.NET, Node, Python, etc.). Low cold-start (Premium/ASE). Stateless per invocation.
  • Best when: custom logic, high concurrency, varied triggers.
  • Scaling: event-driven; Consumption, Premium, Dedicated.
  • State: external (Storage, Redis, DB) unless using Durable extension.

Durable Functions

Extension adding stateful orchestration, fan‑out/fan‑in, retries, sagas using code patterns (orchestrator + activity functions).
  • Best when: complex workflows, checkpoints, human interaction.
  • Patterns: Chaining, Fan-Out, Async HTTP, Monitor, Eternal.
  • State persistence: orchestrator history (storage table + queues).

Logic Apps

Designer + connectors. Low-code integration, B2B (EDI/X12), SaaS orchestration. Visual workflow, managed connectors billing.
  • Best when: many SaaS/API connectors, business process mapping.
  • Pricing: per action/connector; Standard plan adds single-tenant.
  • State & retries: built-in; visual change tracking.

Key Differences (Compact Table)

DimensionFunctionsDurable FunctionsLogic Apps
Primary ModelStateless code unitsStateful orchestration (code)Visual workflow / connectors
Orchestration ComplexityManualNative patternsVisual steps
State MgmtExternal storeHistory replay + storageManaged workflow state
Connector BreadthCustom binding devSame as FunctionsHundreds built-in
Latency (median)LowLow–Mod (orchestrator overhead)Mod (action overhead)
Long RunningNeeds custom logicDurable pattern out-of-boxSupported with runs
Debug StyleCode debuggerCode debugger + historyRun history & replays
Fan-Out ScaleParallel via tasksDeterministic orchestratorParallel branches (less granular)
Billing GranularityGB-s + executionsFunctions cost + storage overheadPer action/connector (Standard = plan)
Vendor LockCode portableExtension semanticsConnector model lock-in

Mathematical Selection Model

Set criteria in [0..10]. Scoring functions produce preference score per service. Higher score → better fit.

Meaning: {{c.desc}}

Formulas

Score_Functions = 0.25*C_code + 0.20*C_volume + 0.20*C_latency + 0.15*C_state + 0.10*(10 - C_connectors) + 0.10*(10 - C_visual) Score_Durable = 0.30*C_orchestration + 0.25*C_state + 0.15*C_code + 0.10*C_volume + 0.10*C_latency + 0.10*(10 - C_visual) Score_LogicApps = 0.30*C_connectors + 0.20*C_visual + 0.15*C_state + 0.15*(10 - C_code) + 0.10*(10 - C_latency) + 0.10*C_orchestration
Functions {{vm.scores.functions | number:2}}
Durable {{vm.scores.durable | number:2}}
Logic Apps {{vm.scores.logicapps | number:2}}
Recommended: {{vm.recommended.name}} ({{vm.recommended.score | number:2}})

Interpretation Rules

  • If C_connectors ≥ 7 AND C_code ≤ 4 → Logic Apps tends to dominate.
  • If C_orchestration ≥ 6 AND (C_state ≥ 6 OR C_longrun ≥ 6) → Durable Functions wins.
  • If latency critical (C_latency ≥ 7) AND volume high (C_volume ≥ 6) → Base Functions likely best.
  • If all criteria mid (~5) differences are marginal; optimize for team skill.

When NOT to Use This Group

  • Need constant CPU for > 30 min sustained loops → consider container or App Service.
  • Need high throughput streaming analytics → see Stream Analytics / Data Explorer.
  • Need heavy GPU / HPC parallel jobs → Batch / AKS.

Decision Summary (Plain English)

Use Functions when you want fast code triggers and minimal ceremony. Use Durable Functions when the process has multiple steps and you need automatic state + retry + fan-out + compensation. Use Logic Apps when integration connectors and visual workflow speed matter more than raw latency or pure code flexibility.

Next pages cover other groups. Adjust sliders to see ranking shift in real time.

next