SlideShare a Scribd company logo
Take your Azure Functions to the next level with Durable Functions - WAZUG
Marc Duiker
Lead Azure Consultant @ Xpirit
Marc Duiker
Durable Functions
Marc Duiker
Durable Functions
Marc Duiker
Durable Functions
Marc Duiker
Durable Functions
Marc Duiker
Durable Functions
Multiple Functions & Control Flow
Marc Duiker
Durable Functions
Marc Duiker
Durable Functions
Marc Duiker
Durable Functions
Marc Duiker
Durable Functions
Marc Duiker
Durable Functions
Marc Duiker
Durable Functions
Marc Duiker
Durable Functions
Marc Duiker
Durable Functions
Durable Functions is based on
Marc Duiker
Durable Functions
Function Roles
Marc Duiker
Durable Functions
Invocations, Checkpoints & Replay
Marc Duiker
Durable Functions
Storage Types used by Durable Functions
Marc Duiker
Durable Functions
State is Persisted in Table Storage
Marc Duiker
Durable Functions
New Trigger Bindings
[OrchestrationClient] DurableOrchestrationClient(Base)
Function Role: Orchestration Starter
Marc Duiker
Durable Functions
DurableOrchestrationClient
Marc Duiker
Durable Functions
New Trigger Bindings
[OrchestrationTrigger] DurableOrchestrationContext(Base)
Function Role: Orchestration Function
Marc Duiker
Durable Functions
DurableOrchestrationContext
Marc Duiker
Durable Functions
New Trigger Bindings
[ActivityTrigger] DurableActivityContext
Function Role: Activity Function
Marc Duiker
Durable Functions
DurableActivityContext
Marc Duiker
Durable Functions
Marc Duiker
Durable Functions
• Visual Studio 2017 15.7+
• Azure Workload
- Extension: Azure Functions & Web Jobs Tools
- Azure Storage Emulator
- Microsoft.Azure.Webjobs.Extensions.DurableTask
Local development with VS2017
Marc Duiker
Durable Functions
Hello {name} Demo!
HttpStart HelloName
{name}
HelloNameActivity
{name}
Marc Duiker
Durable Functions
Marc Duiker
Durable Functions
Function chaining
Marc Duiker
Durable Functions
Demo: Function Chaining
Find a Star Wars character and their home planet.
https://swapi.co/
Marc Duiker
Durable Functions
Demo: Function Chaining
HttpStart GetCharacterInfo SearchCharacter GetPlanet
Marc Duiker
Durable Functions
Marc Duiker
Durable Functions
Fan-out/fan-in
FA1 returns a collection of items
FA2 is called for each of the items from FA1
Marc Duiker
Durable Functions
Demo: Fan-out/Fan-in
Find a Star Wars planet and their residents.
https://swapi.co/
Marc Duiker
Durable Functions
Demo: Fan-out/Fan-in
HttpStart GetPlanetResidents SearchPlanet GetCharacter
Marc Duiker
Durable Functions
Marc Duiker
Durable Functions
Unit Testing Demo
Testing the GetPlanetResidents orchestration using:
• xUnit
• Moq
• AutoFixture
Marc Duiker
Durable Functions
Unit Testing
• Use DurableOrchestrationContextBase in the orchestration.
• Use serializable types with [ActivityTrigger] for the activity
input (because DurableActivityContext can’t be
instantiated/mocked due to internal constructor  ).
Marc Duiker
Durable Functions
Marc Duiker
Durable Functions
• In and output of functions should be serializable.
• Orchestration Functions should be deterministic:
- DateTime.Now, use CurrentUtcDateTime
- Guid.NewGuid()
- Random generated data
Closing remarks I
Marc Duiker
Durable Functions
• Orchestration Functions can only call Activity Functions
in the same Function App.
• Keep your orchestrations small.
• What changes together should be deployed together.
Closing remarks II
Marc Duiker
Durable Functions
GitHub: demos-azure-durable-functions
mduiker@xpirit.com
blog.marcduiker.nl
@marcduiker

More Related Content

PDF
Ansible Galaxy @ Berlin Meetup 0415
PPTX
Version control system & how to use git
PDF
Introduction to Git for Artists
PDF
Reactive programming with Rxjava
PPTX
Reactive Java (GeeCON 2014)
PDF
Kotlin workshop
PPTX
PPTX
Creating custom transformer
Ansible Galaxy @ Berlin Meetup 0415
Version control system & how to use git
Introduction to Git for Artists
Reactive programming with Rxjava
Reactive Java (GeeCON 2014)
Kotlin workshop
Creating custom transformer

What's hot (20)

PDF
Martin Anderson - threads v actors
PPTX
Introduction to Reactive Java
PPTX
Reactive Java (33rd Degree)
PDF
Scala laboratory: Globus. iteration #3
PDF
Introduction to Play 2
PPTX
Rx java in action
PPTX
React hooks
PDF
rx-java-presentation
PDF
Orchestrated Functional Testing with Puppet-spec and Mspectator - PuppetConf ...
PDF
Rntb20200325
 
PPT
Spark Streaming Info
PDF
Streams, Streams Everywhere! An Introduction to Rx
PDF
CLS & asyncListener: asynchronous observability for Node.js
KEY
Ruby 1.9 And Rails 3.0
PDF
Reactive programming in Angular 2
PDF
flipper使ってみた react native tech blog in Japan on May 27 2020
 
PDF
Introduction to Retrofit and RxJava
PDF
Workshop React.js
PDF
Loaders (and why we should use them)
PDF
Android architecture component - FbCircleDev Yogyakarta Indonesia
Martin Anderson - threads v actors
Introduction to Reactive Java
Reactive Java (33rd Degree)
Scala laboratory: Globus. iteration #3
Introduction to Play 2
Rx java in action
React hooks
rx-java-presentation
Orchestrated Functional Testing with Puppet-spec and Mspectator - PuppetConf ...
Rntb20200325
 
Spark Streaming Info
Streams, Streams Everywhere! An Introduction to Rx
CLS & asyncListener: asynchronous observability for Node.js
Ruby 1.9 And Rails 3.0
Reactive programming in Angular 2
flipper使ってみた react native tech blog in Japan on May 27 2020
 
Introduction to Retrofit and RxJava
Workshop React.js
Loaders (and why we should use them)
Android architecture component - FbCircleDev Yogyakarta Indonesia
Ad

Similar to Take your Azure Functions to the next level with Durable Functions - WAZUG (20)

PDF
Take your Azure Functions to the next level with Durable Functions - Serverle...
PDF
Take your azure functions to the next level with durable functions @ Experts ...
PDF
Orchestrate your Azure Functions with Durable Functions - AzureThursday Meetup
PPTX
The dark side of Akka and the remedy - bp.scala meetup
PDF
Enabling Microservices @Orbitz - DockerCon 2015
PPTX
Spring Boot
PDF
Troubleshooting tips from docker support engineers
PDF
Reactive Web-Applications @ LambdaDays
PDF
From Rollercoasters to Meerkats: 3 Generations of Production Kubernetes Clusters
PPTX
Session #6 loaders and adapters
PPTX
2. Design patterns. part #2
PDF
Concurrency and Thread-Safe Data Processing in Background Tasks
PDF
Testable JavaScript: Application Architecture
PDF
Scala, docker and testing, oh my! mario camou
PPTX
[NDC 2019] Enterprise-Grade Serverless
PPTX
[NDC 2019] Functions 2.0: Enterprise-Grade Serverless
PPT
The Next Step in AS3 Framework Evolution - FITC Amsterdam 2013
PDF
Kerberizing spark. Spark Summit east
PDF
Sagas Middleware Architecture
PPTX
Taking Jenkins Pipeline to the Extreme
Take your Azure Functions to the next level with Durable Functions - Serverle...
Take your azure functions to the next level with durable functions @ Experts ...
Orchestrate your Azure Functions with Durable Functions - AzureThursday Meetup
The dark side of Akka and the remedy - bp.scala meetup
Enabling Microservices @Orbitz - DockerCon 2015
Spring Boot
Troubleshooting tips from docker support engineers
Reactive Web-Applications @ LambdaDays
From Rollercoasters to Meerkats: 3 Generations of Production Kubernetes Clusters
Session #6 loaders and adapters
2. Design patterns. part #2
Concurrency and Thread-Safe Data Processing in Background Tasks
Testable JavaScript: Application Architecture
Scala, docker and testing, oh my! mario camou
[NDC 2019] Enterprise-Grade Serverless
[NDC 2019] Functions 2.0: Enterprise-Grade Serverless
The Next Step in AS3 Framework Evolution - FITC Amsterdam 2013
Kerberizing spark. Spark Summit east
Sagas Middleware Architecture
Taking Jenkins Pipeline to the Extreme
Ad

Recently uploaded (20)

PDF
Accuracy of neural networks in brain wave diagnosis of schizophrenia
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PPTX
Tartificialntelligence_presentation.pptx
PDF
Electronic commerce courselecture one. Pdf
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PPTX
Group 1 Presentation -Planning and Decision Making .pptx
PDF
Approach and Philosophy of On baking technology
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Machine learning based COVID-19 study performance prediction
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PPTX
SOPHOS-XG Firewall Administrator PPT.pptx
PDF
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PPTX
Spectroscopy.pptx food analysis technology
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Encapsulation theory and applications.pdf
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
gpt5_lecture_notes_comprehensive_20250812015547.pdf
Accuracy of neural networks in brain wave diagnosis of schizophrenia
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Tartificialntelligence_presentation.pptx
Electronic commerce courselecture one. Pdf
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
Group 1 Presentation -Planning and Decision Making .pptx
Approach and Philosophy of On baking technology
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Machine learning based COVID-19 study performance prediction
Advanced methodologies resolving dimensionality complications for autism neur...
SOPHOS-XG Firewall Administrator PPT.pptx
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
Building Integrated photovoltaic BIPV_UPV.pdf
Spectroscopy.pptx food analysis technology
Network Security Unit 5.pdf for BCA BBA.
Encapsulation theory and applications.pdf
Dropbox Q2 2025 Financial Results & Investor Presentation
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Spectral efficient network and resource selection model in 5G networks
gpt5_lecture_notes_comprehensive_20250812015547.pdf

Take your Azure Functions to the next level with Durable Functions - WAZUG