Public Courses

Temporal 102: Exploring Durable Execution with Go (102_go_r2)


Description
In this course, you will go beyond the basics of Temporal application development. You will acquire skills necessary to use Temporal throughout the full development lifecycle by learning how to test, debug, deploy, and update applications. You'll encounter several common problems faced by Temporal developers, understand why they occur, and how to identify, solve, and avoid them. Through heavy emphasis on key concepts and best practices, you'll gain a deeper understanding of how Temporal works and how to use it effectively.

When you've completed the course, you'll be able to:

- Apply Temporal best practices for application development
- Validate application behavior through automated testing
- Evaluate an Event History to debug problems with Workflow Execution

Prerequisites:

To be successful in this course, you should have an understanding of the fundamental concepts, tools, and techniques used to develop and execute basic Temporal applications with the Go SDK. This includes the ability to develop and execute Temporal Workflows and Activities, navigate the Web UI, configure and run a Worker, as well as an understanding of the high-level interactions between the Temporal Application and Temporal Cluster during Workflow Execution. We strongly recommend that you complete Temporal 101, which covers these topics, before starting this course.

Since code used in examples and exercises are written in Go, you must also have at least basic proficiency with the Go programming language.

Programming Language: Go

Content
  • About this Course
  • Welcome
  • Format and Duration
  • Course Outcomes
  • Exercise Environment Orientation
  • (Optional Activity) Setting Up a Local Development Environment
  • Course Conventions
  • Getting Help
  • Understanding Key Concepts in Temporal
  • Understanding Key Concepts: What to Expect
  • Durable Execution System
  • Temporal Application Structure
  • How Errors Affect Workflow Execution
  • Improving Your Temporal Application Code
  • Improving Your Temporal Application Code: What to Expect
  • Backwards-Compatible Evolution of Input Parameters and Return Values
  • Choosing Names for Task Queues
  • Choosing Workflow IDs
  • Workflow ID Reuse Policy and Retention Period
  • Logging in Workflows and Activities
  • Accessing Results
  • Using Timers in a Workflow Definition
  • Using Timers in a Workflow Definition: What to Expect
  • What is a Timer?
  • Use Cases for Timers
  • Pausing Workflow Execution for a Specified Duration
  • Running Code at a Specific Point in the Future
  • What Happens to a Timer if the Worker Crashes?
  • Hands-On Exercise #1: Observing Durable Execution
  • Understanding Event History
  • Understanding Event History: What to Expect
  • Workflow Execution Overview
  • How Workflow Code Maps to Commands
  • Overview of Event History
  • Event History Limits
  • Event Structure and Attributes
  • How Commands Map to Events
  • Workflow and Activity Task States
  • Sticky Execution
  • Understanding Workflow Determinism
  • Understanding Workflow Determinism: What to Expect
  • History Replay: How Temporal Provides Durable Execution
  • Why Temporal Requires Determinism for Workflows
  • Common Sources of Non-Determinism
  • Identifying Non-Deterministic Code through Static Analysis
  • How Workflow Changes Can Lead to Non-Deterministic Errors
  • Deployment Leads to Non-Deterministic Error
  • Using Workflow Reset to Recover from a Bad Deployment
  • Testing Your Temporal Application Code
  • Testing Your Temporal Application Code: What to Expect
  • Unit Testing Primer for Go (Optional)
  • Validating Correctness of Temporal Application Code
  • Testing Activities
  • Testing Workflows
  • Mocking Activities for Workflow Tests
  • Hands-On Exercise #2: Testing the Translation Workflow
  • Debugging Workflow Execution
  • Debugging Workflow Execution: What to Expect
  • Debugging a Workflow that Does Not Progress
  • Interpreting Event History for Workflow Executions
  • Terminating a Workflow Execution with the Web UI
  • Identifying and Fixing a Bug in an Activity Definition
  • Hands-On Exercise #3: Debugging and Fixing an Activity Failure
  • Deploying Your Application to Production
  • Deploying Your Application to Production: What to Expect
  • The Deployment Landscape
  • Configuring a Temporal Client for Production
  • Overview of Temporal Application Deployment
  • Conclusion
  • Essential Points
  • Parting Words
  • For More Information
Completion rules
  • All units must be completed