Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Take your Azure Functions to the next level with Durable Functions @ WAZUG 2018

Take your Azure Functions to the next level with Durable Functions @ WAZUG 2018

These are the slides for the Azure Durable Functions presentation I gave at the Azure User Group Netherlands (https://www.wazug.nl/) hosted by Xpirit.

Source code: https://github.com/marcduiker/demos-azure-durable-functions

Marc Duiker

November 01, 2018
Tweet

More Decks by Marc Duiker

Other Decks in Programming

Transcript

  1. 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
  2. Marc Duiker Durable Functions Demo: Function Chaining Find a Star

    Wars character and their home planet. https://swapi.co/
  3. Marc Duiker Durable Functions Fan-out/fan-in FA1 returns a collection of

    items FA2 is called for each of the items from FA1
  4. Marc Duiker Durable Functions Demo: Fan-out/Fan-in Find a Star Wars

    planet and their residents. https://swapi.co/
  5. Marc Duiker Durable Functions Unit Testing Demo Testing the GetPlanetResidents

    orchestration using: • xUnit • Moq • AutoFixture
  6. 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  ).
  7. 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
  8. 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