Slide 1

Slide 1 text

Orchestrate your business logic reliably with Dapr Workflows

Slide 2

Slide 2 text

2 Azure MVP Dapr Community Manager ❤ pixel art Marc Duiker Sr Dev Advocate [email protected]

Slide 3

Slide 3 text

3 3 Checkout Dapr Chaining Workflows End Start Fan-out/Fan-in Eternal workflow Timers Q&A

Slide 4

Slide 4 text

What is Dapr? 4

Slide 5

Slide 5 text

5 E-commerce system State Management Email Payment Front-end Shipping Checkout Inventory Cart Internet Queue I just want to trace my calls end-to-end. How do I encrypt calls with ongoing cert rotation? How do applications discover and call each other? How do I handle failed calls and perform retries? How do I secure access to my data layer? How do I handle state conflicts from multiple apps? How do I measure latency on my database? How do I orchestrate business logic transactions? How do I send messages to many applications? Developer challenges

Slide 6

Slide 6 text

6 Distributed application runtime

Slide 7

Slide 7 text

Dapr is a portable, event- driven, runtime for building distributed applications across cloud and edge. 7

Slide 8

Slide 8 text

8 virtual or physical machines

Slide 9

Slide 9 text

Speeds up microservice development by providing a common set of building block APIs. 9

Slide 10

Slide 10 text

10 Service invocation State Management Publish & subscribe Bindings (input & output) Actors Secret Stores Configuration Observability Workflows Distributed Lock Building block APIs

Slide 11

Slide 11 text

11 HTTP/gRPC Dapr API Dapr sidecar Application App

Slide 12

Slide 12 text

12 POST http:// localhost:3500/v1.0/invoke/cart/method/order GET http:// localhost:3500/v1.0/state/inventory/item67 POST http:// localhost:3500/v1.0/publish/order GET http:// localhost:3500/v1.0/secrets/vault/password42 POST http:// localhost:3500/v1.0-alpha1/workflows/dapr/businessprocess/1234/start HTTP/gRPC Dapr API App

Slide 13

Slide 13 text

13 Python Java Script Java Go Client SDKs C#

Slide 14

Slide 14 text

19 Bindings Configuration State Management Publish & subscribe Observability Actors Secret Stores Workflows Distributed Lock Components AWS DynamoDB Azure CosmosDB GCP Firebase Redis Cassandra AWS SQS Azure Service Bus GCP Pub/Sub Redis RabbitMQ AWS Secrets mngr Azure KeyVault GCP Secret mngr HashiCorp Vault Kubernetes Secrets AWS DynamoDB Azure CosmosDB Redis MongoDB Postgres AWS S3 Azure Storage GCP Storage Twilio Kafka Jeager Zipkin Prometheus App Insights Datadog Redis Redis Azure App Configuration Dapr Workflow Building Block APIs

Slide 15

Slide 15 text

Workflows 38

Slide 16

Slide 16 text

A sequence of tasks or activities that are performed to accomplish a specific goal. 39

Slide 17

Slide 17 text

40 Business Process Automation Durable Logic Apps

Slide 18

Slide 18 text

Dapr workflow works with all the other building block APIs 🎉 41

Slide 19

Slide 19 text

Workflow patterns 42 Workflows

Slide 20

Slide 20 text

43 Workflows Activity 1 Activity 3 Activity 2 End Start Chaining

Slide 21

Slide 21 text

44 Workflows Activity 1 Activity 3 Activity 2 End Start Fan-out fan-in

Slide 22

Slide 22 text

45 Workflows Eternal Activity Start Continue

Slide 23

Slide 23 text

46 Workflows Timer Activity Timer End Start

Slide 24

Slide 24 text

47 The workflow engine

Slide 25

Slide 25 text

48 Your Workflow App Workflow engine Append-only state store

Slide 26

Slide 26 text

49 Your Workflow App Contains definition of a sequence of activities Schedules and manages activity executions (incl resiliency) Contains workflow state, input and outputs of activities

Slide 27

Slide 27 text

End Activity 3 Activity 2 Activity 1 50 Start Replay & checkpointing

Slide 28

Slide 28 text

End End Activity 3 Activity 3 Activity 2 Activity 2 Activity 1 Activity 1 51 Start Workflow Start Store start & input

Slide 29

Slide 29 text

End End Activity 3 Activity 3 Activity 2 Activity 2 Activity 1 52 Start Start Store input & output Schedule & execute Activity 1

Slide 30

Slide 30 text

End End Activity 3 Activity 3 Activity 2 Activity 2 Activity 1 53 Replay Workflow Start Activity 1 has been executed already

Slide 31

Slide 31 text

End End Activity 3 Activity 3 Activity 2 Activity 1 54 Start Start Store input & output Schedule & execute Activity 2 Activity 1

Slide 32

Slide 32 text

End End Activity 3 Activity 3 Activity 2 Activity 1 55 Replay Workflow Start Activity 1 & 2 have been executed already

Slide 33

Slide 33 text

End End Activity 3 Activity 2 Activity 1 56 Schedule & execute Activity 3 Start Start Store input & output Activity 2 Activity 1

Slide 34

Slide 34 text

End End Activity 3 Activity 2 Activity 1 57 Replay Workflow Start Activity 1,2 & 3 have been executed already

Slide 35

Slide 35 text

End Activity 3 Activity 2 Activity 1 58 Workflow is completed Start Store completion & output

Slide 36

Slide 36 text

Workflow demos 59 https://github.com/diagrid-labs/dapr-workflow-demos

Slide 37

Slide 37 text

Join the Dapr Discord! bit.ly/dapr-discord