This is a deck I used in my internal Azure Bootcamp presentation at Microsoft for the Cloud Solution Architecture team across Europe and MEA.
FaaS for Everyone, Everywhere
Azure Application Development Tech Lead for MEA
What langauges do you support?
- C# .NET 4.8, 6, 7
- F# .NET 6, 7
- NodeJS 18, 16, 14
- Java 8, 11, 17
- Powershell 7.2
- Python 3.10, 3.9, 3.8, 3.7
- Go, Rust, others (Custom Handlers)
What do you mean, Custom Handlers?
Custom handlers are lightweight web servers that receive events
from the Azure Functions host. Any language that supports HTTP
primitives can implement a custom handler. This means that custom
handlers can be used to create functions in languages that aren't
📚 Go Sample: https://github.com/Azure-Samples/functions-custom-
Can I bring anything?
- Would you like Custom Containers?
- We give you base Linux Image.
- Premium Plan or Dedicated App Service Plan Host is a must.
⚠️ Linux Containers can only be deployed to Linux Premium and Linux Dedicated plans.
What are hosting options?
- Pay per GB-s
- Execution Count Charge
- vCPU + Memory Duration
- App Service Elastic Premium plans (SKU starts with E)
- Autoscales out of the box.
- Every premium plan has at least one active (billed) instance at all times.
- Multiple Functions Apps can share a single plan.
- App Service Premium V2 plans (SKU starts with P)
- Wont autoscale unless you do.
Am I stuck with public cloud?
- Azure Functions = Runtime + Scale Controller
- Runtime might need an Azure Storage Account.
- Docker container base image
- Supporting seamless event-driven scale within a Kubernetes
cluster using Kubernetes-based Event Driven Autoscaling (KEDA).
What is this Isolated Process thing?
- In-Process mode runs everything with the same runtime
- Isolated means:
- Not stuck with the .NET Version used by runtime.
- Less dependency conflict
- Dependency injection and middleware support for .NET.
My next API has no servers…
API for Free!
Queue me up baby!
Bindings and Triggers
Let’s talk Workflows…
• Azure Logic Apps: For those who like user interfaces and
workflow definition files.
• Azure Durable Functions: For those who like codifying
workflows, and more.
• Stateful functions
• Managed state, checkpoints, and restarts when needed.
• Define stateful workflows in orchestrator functions.
Workflows you said?
• Define workflows in code. No JSON schemas or designers are
• They can call other functions synchronously and asynchronously.
Output from called functions can be saved to local variables.
• They automatically checkpoint their progress whenever the
function awaits. Local state is never lost if the process recycles.
Problem 1 : Function Chaining
• No visualization to show relationship between functions and queues.
• Middle queues are an implementation detail – conceptual overhead.
• Error handling adds a lot more complexity.
Problem 2 : Fan-out/Fan-in
• Fanning-out is easy, but fanning-in is more complicated.
• Functions offers no help with this scenario today
• All the same problems of the previous pattern
Problem 3 : Eternal Processes
• Long running processes
• Built-in state management
• orchestrationClient or built-in webhooks can be used.
Problem 5 : Human Interaction
• Durable timers to wait for external events.
• orchestrationClient binding can be used to use built-in
Important Orchestrator Limitations
Orchestrator code is replayed on every rehydration to restore all local state (local variables,
• Follows the Event Sourcing stateful pattern
• Function calls are never replayed – the outputs are remembered.
This requires the orchestrator code to be deterministic.
• Rule #1: Never write logic that depends on random numbers, DateTime.Now,
• Rule #2: Never do I/O directly in the orchestrator function.
• Rule #3: Do not write infinite loops
• Rule #4: Use the built-in workarounds for rules #1, #2, and #3
Durable Task Framework Engines
Default backend, serverless, low cost
10X Performance, Combine with Event Hubs with Faster
No Azure needed!
Which triggers require a storage account and which don’t.
Workflow Definition Language schema for Azure Logic Apps
Durable Task Framework
Durable Functions Nuget Package
http://daron.me | @daronyondem
Grab slides on http://decks.daron.me/