Marc Duiker
Durable Functions
• What are orchestrations?
• Why do we need them?
• What is Durable Functions?
• Local development
• Examples
• Function chaining
• Fan-out/Fan-in
• Stateful Singleton
• Closing remarks
Slide 4
Slide 4 text
Marc Duiker
Durable Functions
Slide 5
Slide 5 text
Marc Duiker
Durable Functions
Orchestration?
Orchestration is the automated arrangement, coordination, and
management of computer systems, middleware, and services.
Slide 6
Slide 6 text
Marc Duiker
Durable Functions
Slide 7
Slide 7 text
Marc Duiker
Durable Functions
Control flow
Slide 8
Slide 8 text
Marc Duiker
Durable Functions
Slide 9
Slide 9 text
Marc Duiker
Durable Functions
Slide 10
Slide 10 text
Marc Duiker
Durable Functions
Slide 11
Slide 11 text
Marc Duiker
Durable Functions
Slide 12
Slide 12 text
Marc Duiker
Durable Functions
Slide 13
Slide 13 text
Marc Duiker
Durable Functions
Slide 14
Slide 14 text
Marc Duiker
Durable Functions
Durable Functions is based on
Slide 15
Slide 15 text
Marc Duiker
Durable Functions
New Trigger Bindings
[OrchestrationClient]
DurableOrchestrationClient
Slide 16
Slide 16 text
Marc Duiker
Durable Functions
DurableOrchestrationClient
Slide 17
Slide 17 text
Marc Duiker
Durable Functions
New Trigger Bindings
[OrchestrationTrigger]
DurableOrchestrationContext
Slide 18
Slide 18 text
Marc Duiker
Durable Functions
DurableOrchestrationContext
Slide 19
Slide 19 text
Marc Duiker
Durable Functions
New Trigger Bindings
[ActivityTrigger]
DurableActivityContext
Slide 20
Slide 20 text
Marc Duiker
Durable Functions
DurableActivityContext
Slide 21
Slide 21 text
Marc Duiker
Durable Functions
Invocations, Checkpoints & Replay
Function invocation Execution history
Slide 22
Slide 22 text
Marc Duiker
Durable Functions
Orchestration Functions should be
Deterministic
Slide 23
Slide 23 text
Marc Duiker
Durable Functions
Slide 24
Slide 24 text
Marc Duiker
Durable Functions
Visual Studio 2017 15.5+
- “Azure development tools” workload
- Extension: Azure Functions & Web Jobs Tools
- Azure Storage Emulator
Local development
Slide 25
Slide 25 text
Marc Duiker
Durable Functions
Demo!
Slide 26
Slide 26 text
Marc Duiker
Durable Functions
Slide 27
Slide 27 text
Marc Duiker
Durable Functions
Function chaining
Slide 28
Slide 28 text
Marc Duiker
Durable Functions
Demo: Use case
As a speaker
I want to arrive early at the next meetup
so I still have some time to tweak my slides
at the very last moment.
Slide 29
Slide 29 text
Marc Duiker
Durable Functions
Demo: Control flow
In
- meetup group
- departure address
- travel mode
Out
- event name
- group name
- destination address
- departure time
- duration
Returns one event
For the event returned by FA1
Slide 30
Slide 30 text
Marc Duiker
Durable Functions
Slide 31
Slide 31 text
Marc Duiker
Durable Functions
Fan-out/fan-in
FA1
returns a collection of items
FA2
is called for each of the items from FA1
Slide 32
Slide 32 text
Marc Duiker
Durable Functions
Demo: Use case
As a meetup visitor
I want a list of relevant events,
sorted by travel duration
so I can choose which events I will attend.
Slide 33
Slide 33 text
Marc Duiker
Durable Functions
Demo: Control flow
In
- search text
- max nr of events
- departure address
- travel mode
Out
Collection of
- event name
- group name
- destination address
- departure time
- duration
For each event returned by FA1
Returns collection of events
Slide 34
Slide 34 text
Marc Duiker
Durable Functions
Slide 35
Slide 35 text
Marc Duiker
Durable Functions
Slide 36
Slide 36 text
Marc Duiker
Durable Functions
Slide 37
Slide 37 text
Marc Duiker
Durable Functions
Slide 38
Slide 38 text
Marc Duiker
Durable Functions
Slide 39
Slide 39 text
Marc Duiker
Durable Functions
Slide 40
Slide 40 text
Marc Duiker
Durable Functions
Slide 41
Slide 41 text
Marc Duiker
Durable Functions
Slide 42
Slide 42 text
Marc Duiker
Durable Functions
Slide 43
Slide 43 text
Marc Duiker
Durable Functions
Slide 44
Slide 44 text
Marc Duiker
Durable Functions
Slide 45
Slide 45 text
Marc Duiker
Durable Functions
Slide 46
Slide 46 text
Marc Duiker
Durable Functions
Slide 47
Slide 47 text
Marc Duiker
Durable Functions
Slide 48
Slide 48 text
Marc Duiker
Durable Functions
Slide 49
Slide 49 text
Marc Duiker
Durable Functions
Slide 50
Slide 50 text
Marc Duiker
Durable Functions
Demo
Managing a list of names in a stateful singleton.
Slide 51
Slide 51 text
Marc Duiker
Durable Functions
Slide 52
Slide 52 text
Marc Duiker
Durable Functions
Slide 53
Slide 53 text
Marc Duiker
Durable Functions
Slide 54
Slide 54 text
Marc Duiker
Durable Functions
Slide 55
Slide 55 text
Marc Duiker
Durable Functions
• Orchestration Functions can only call Activity Functions in the
same Function App.
• Duration timers can’t last longer than 7 days.
• Keep your orchestration small.
• What changes together should be deployed together.
Closing remarks
Slide 56
Slide 56 text
Marc Duiker
Durable Functions
blog.marcduiker.nl
@marcduiker