SlideShare uma empresa Scribd logo
1 de 44
Baixar para ler offline
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

Mais conteúdo relacionado

Mais procurados

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
 

Mais procurados (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
 

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

Semelhante a 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 ...
 

Último

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Último (20)

Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
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
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
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
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
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, ...
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 

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