Public Courses

Versioning Workflows with Go (versioning_go)


Description
In this course, you'll go beyond the fundamentals, learning how to safely evolve your Temporal application code in production. This course will cover multiple approaches to versioning Temporal Workflows, bookended by examples of how to monitor and test your Workflow Execution History, so you can verify that your Versioning is working correctly. You'll also see an example of a long-running Workflow, which will help you to see why Temporal requires that Workflow code is deterministic, what can happen when a Workflow contains non-deterministic code, and how you can use versioning to safely deploy changes to your code.

As with our first two "Introducing the Temporal Platform" and "Exploring Durable Execution" courses, you won't need to be an expert Go developer to successfully complete this course. That said, you will see more idiomatic language features, and more production-ready code snippets. This course also uses some third-party packages, such as the "testify" package used for unit tests, to make the examples better reflect what an experienced developer would do. However, it's important to remember that the example code used in this course was designed to support learning a specific aspect of Temporal, not to serve as a ready-to-use template for implementing a production system.

The examples and code in this course will pick up where Exploring Durable Execution left off, and you'll see some of the same business logic -- such as the pizza delivery Workflow -- from our earlier courses. You shouldn't need to review those courses if you've already them, since this course will recap some of the same material in the context of versioning.

Programming Language: Go Number of hours: 1.5

Content
  • ABOUT THIS COURSE
  • Welcome
  • Meet the Instructors
  • Format and Duration
  • Course Outcomes
  • Exercise Environment Orientation
  • (Optional Activity) Setting up a Local Development Environment
  • Course Conventions
  • Getting Help
  • UNDERSTANDING WORKFLOW VERSIONING
  • Understanding Workflow Versioning: What to Expect
  • What is Workflow Versioning?
  • Identifying Open Executions by Workflow Type
  • Approaches for Safely Deploying Incompatible Changes
  • Using a Different Workflow Type for a New Version
  • Versioning Workflows with the GetVersion API
  • Visualizing Search Attributes
  • TESTING YOUR VERSIONING IMPLEMENTATION
  • Testing Your Versioning Implementation: What to Expect
  • Searching for Workflow Versions
  • Retrieving Event History
  • Determinism in Versioned Workflows
  • Testing Backwards Compatibility of a Change
  • Hands-On Exercise #1: Versioning Workflows with the GetVersion API
  • ADOPTING A VERSIONING STRATEGY
  • Adopting a Versioning Strategy: What to Expect
  • Migrating Workflows
  • Comparing Versioning Implementations
  • CONCLUSION
  • Essential Points
  • Parting Words
  • For More Information
Completion rules
  • All units must be completed
  • Leads to a certificate with a duration: Forever