SlideShare ist ein Scribd-Unternehmen logo
1 von 44
Downloaden Sie, um offline zu lesen
Marc Duiker
Lead Azure Consultant @ Xpirit
Marc Duiker
Durable Functions
Marc Duiker
Durable Functions
Marc Duiker
Durable Functions
CC BY-SA 3.0 Olga Tarkovskiy
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 Client
(Starter Function)
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 GetPlanetGetCharacterInfo SearchCharacter
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 GetCharacterGetPlanetResidents SearchPlanet
Marc Duiker
Durable Functions
Marc Duiker
Durable Functions
Unit Testing Demo
Testing the GetPlanetResidents orchestration using:
• xUnit
• Moq
• AutoFixture
• FluentAssertions
Marc Duiker
Durable Functions
Unit Testing
• Use the context base classes.
• Use simple or complex (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

Weitere ähnliche Inhalte

Was ist angesagt?

Introduction to Play 2
Introduction to Play 2Introduction to Play 2
Introduction to Play 2
Matteo Depalo
 
Spark Streaming Info
Spark Streaming InfoSpark Streaming Info
Spark Streaming Info
Doug Chang
 

Was ist angesagt? (20)

Introduction to Reactive Java
Introduction to Reactive JavaIntroduction to Reactive Java
Introduction to Reactive Java
 
Martin Anderson - threads v actors
Martin Anderson - threads v actorsMartin Anderson - threads v actors
Martin Anderson - threads v actors
 
Reactive Java (33rd Degree)
Reactive Java (33rd Degree)Reactive Java (33rd Degree)
Reactive Java (33rd Degree)
 
Creating custom transformer
Creating custom transformerCreating custom transformer
Creating custom transformer
 
Reactive Summit 2017 Highlights!
Reactive Summit 2017 Highlights!Reactive Summit 2017 Highlights!
Reactive Summit 2017 Highlights!
 
Introduction to Actor Model and Akka
Introduction to Actor Model and AkkaIntroduction to Actor Model and Akka
Introduction to Actor Model and Akka
 
Scala laboratory: Globus. iteration #3
Scala laboratory: Globus. iteration #3Scala laboratory: Globus. iteration #3
Scala laboratory: Globus. iteration #3
 
Introduction to Play 2
Introduction to Play 2Introduction to Play 2
Introduction to Play 2
 
RxJava - introduction & design
RxJava - introduction & designRxJava - introduction & design
RxJava - introduction & design
 
Rx java in action
Rx java in actionRx java in action
Rx java in action
 
React hooks
React hooksReact hooks
React hooks
 
rx-java-presentation
rx-java-presentationrx-java-presentation
rx-java-presentation
 
Spark Streaming Info
Spark Streaming InfoSpark Streaming Info
Spark Streaming Info
 
Rntb20200325
Rntb20200325Rntb20200325
Rntb20200325
 
Streams, Streams Everywhere! An Introduction to Rx
Streams, Streams Everywhere! An Introduction to RxStreams, Streams Everywhere! An Introduction to Rx
Streams, Streams Everywhere! An Introduction to Rx
 
CLS & asyncListener: asynchronous observability for Node.js
CLS & asyncListener: asynchronous observability for Node.jsCLS & asyncListener: asynchronous observability for Node.js
CLS & asyncListener: asynchronous observability for Node.js
 
Reactive programming in Angular 2
Reactive programming in Angular 2Reactive programming in Angular 2
Reactive programming in Angular 2
 
Introduction to Retrofit and RxJava
Introduction to Retrofit and RxJavaIntroduction to Retrofit and RxJava
Introduction to Retrofit and RxJava
 
flipper使ってみた react native tech blog in Japan on May 27 2020
flipper使ってみた react native tech blog in Japan on May 27 2020flipper使ってみた react native tech blog in Japan on May 27 2020
flipper使ってみた react native tech blog in Japan on May 27 2020
 
Intro to Functional Programming with RxJava
Intro to Functional Programming with RxJavaIntro to Functional Programming with RxJava
Intro to Functional Programming with RxJava
 

Ähnlich wie Take your Azure Functions to the next level with Durable Functions - Serverless Computing London

Ähnlich wie Take your Azure Functions to the next level with Durable Functions - Serverless Computing London (20)

Take your Azure Functions to the next level with Durable Functions - WAZUG
Take your Azure Functions to the next level with Durable Functions - WAZUGTake your Azure Functions to the next level with Durable Functions - WAZUG
Take your Azure Functions to the next level with Durable Functions - WAZUG
 
Take your azure functions to the next level with durable functions @ Experts ...
Take your azure functions to the next level with durable functions @ Experts ...Take your azure functions to the next level with durable functions @ Experts ...
Take your azure functions to the next level with durable functions @ Experts ...
 
Orchestrate your Azure Functions with Durable Functions - AzureThursday Meetup
Orchestrate your Azure Functions with Durable Functions - AzureThursday MeetupOrchestrate your Azure Functions with Durable Functions - AzureThursday Meetup
Orchestrate your Azure Functions with Durable Functions - AzureThursday Meetup
 
Spring Boot
Spring BootSpring Boot
Spring Boot
 
The dark side of Akka and the remedy - bp.scala meetup
The dark side of Akka and the remedy - bp.scala meetupThe dark side of Akka and the remedy - bp.scala meetup
The dark side of Akka and the remedy - bp.scala meetup
 
Enabling Microservices @Orbitz - DockerCon 2015
Enabling Microservices @Orbitz - DockerCon 2015Enabling Microservices @Orbitz - DockerCon 2015
Enabling Microservices @Orbitz - DockerCon 2015
 
Troubleshooting tips from docker support engineers
Troubleshooting tips from docker support engineersTroubleshooting tips from docker support engineers
Troubleshooting tips from docker support engineers
 
From Rollercoasters to Meerkats: 3 Generations of Production Kubernetes Clusters
From Rollercoasters to Meerkats: 3 Generations of Production Kubernetes ClustersFrom Rollercoasters to Meerkats: 3 Generations of Production Kubernetes Clusters
From Rollercoasters to Meerkats: 3 Generations of Production Kubernetes Clusters
 
The Developer Conference - CloudKit, entendendo a Cloud da Apple
The Developer Conference - CloudKit, entendendo a Cloud da AppleThe Developer Conference - CloudKit, entendendo a Cloud da Apple
The Developer Conference - CloudKit, entendendo a Cloud da Apple
 
Reactive Web-Applications @ LambdaDays
Reactive Web-Applications @ LambdaDaysReactive Web-Applications @ LambdaDays
Reactive Web-Applications @ LambdaDays
 
Testing Microservices
Testing MicroservicesTesting Microservices
Testing Microservices
 
Docker for Java Developers
Docker for Java DevelopersDocker for Java Developers
Docker for Java Developers
 
Reproducible component tests using docker
Reproducible component tests using dockerReproducible component tests using docker
Reproducible component tests using docker
 
Session #6 loaders and adapters
Session #6  loaders and adaptersSession #6  loaders and adapters
Session #6 loaders and adapters
 
RIBs - Fragments which work
RIBs - Fragments which workRIBs - Fragments which work
RIBs - Fragments which work
 
Stateful patterns in Azure Functions
Stateful patterns in Azure FunctionsStateful patterns in Azure Functions
Stateful patterns in Azure Functions
 
The Next Step in AS3 Framework Evolution - FITC Amsterdam 2013
The Next Step in AS3 Framework Evolution - FITC Amsterdam 2013The Next Step in AS3 Framework Evolution - FITC Amsterdam 2013
The Next Step in AS3 Framework Evolution - FITC Amsterdam 2013
 
Scala, docker and testing, oh my! mario camou
Scala, docker and testing, oh my! mario camouScala, docker and testing, oh my! mario camou
Scala, docker and testing, oh my! mario camou
 
Integration tests: use the containers, Luke!
Integration tests: use the containers, Luke!Integration tests: use the containers, Luke!
Integration tests: use the containers, Luke!
 
Automated integration testing of distributed systems with Docker Compose and ...
Automated integration testing of distributed systems with Docker Compose and ...Automated integration testing of distributed systems with Docker Compose and ...
Automated integration testing of distributed systems with Docker Compose and ...
 

Kürzlich hochgeladen

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Kürzlich hochgeladen (20)

Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 

Take your Azure Functions to the next level with Durable Functions - Serverless Computing London