SE Radio 596: Maxim Fateev on Durable Execution with Temporal

Topics covered
Popular Clips
Episode Highlights
Core Concepts
Temporal's core concepts revolve around durable execution, which ensures that workflows are resilient and can recover from failures. explains that workflows in Temporal are written in top-level programming languages like Java, Go, and Python, allowing for the preservation of the full state, including blocking calls and variable states 1. Activities, a key component, are functions that handle external communication and can run for extended periods, even up to a year, with features like heartbeats for progress tracking and cancellation capabilities 2. Fateev emphasizes the importance of idempotency in activities, allowing for retries without unintended side effects 3.
Temporal activities can run as long as necessary, with heartbeats to track progress and handle failures gracefully.
---
These design choices make Temporal a robust solution for scenarios requiring durability and guaranteed completion.
State Management
State management in Temporal is designed to maintain consistency and durability across workflows. describes how Temporal stores the state of activity results rather than the workflow state directly, limiting the size of the history to ensure efficiency 4. This approach allows workflows to run indefinitely by resetting history through a mechanism called "continuous new," which also facilitates code upgrades 4. Fateev also highlights the use of signals, queries, and updates to interact with workflows, providing flexibility in managing state and executing logic 5.
We recommend storing blobs in some other system and passing pointers around, as Temporal is not a big data system.
---
These techniques ensure that Temporal can handle complex, long-running workflows efficiently.
Debugging Techniques
Temporal's debugging capabilities are crucial for managing workflows and resolving errors. explains that users can download workflow history in JSON format to replay and troubleshoot issues locally, offering powerful insights into workflow execution 6. The system also integrates with standard metrics and logging, providing automatic metrics emission for activities and workflows 6. Fateev discusses the challenges of workflow versioning, emphasizing the importance of maintaining compatibility through patching and testing, which allows for bug fixes in running workflows 7.
You can replay that workflow as many times as you want, reproducing that problem on your local machine.
---
These features make Temporal a reliable tool for developers dealing with complex systems.
Related Episodes


SE Radio 623: Mike Freedman on TimescaleDB
Answers 383 questions

SE Radio 585: Adam Frank on Continuous Delivery vs Continuous Deployment
Answers 383 questions
SE Radio 560: Sugu Sougoumarane on Distributed SQL Databases
Answers 383 questions

SE Radio 594: Sean Moriarity on Deep Learning with Elixir and Axon
Answers 383 questions

SE Radio 619: James Strong on Kubernetes Networking
Answers 383 questions

SE Radio 558: Michael Fazio on Modern Android Development
Answers 383 questions

SE Radio 600: William Morgan on Kubernetes Sidecars and Service Mesh
Answers 383 questions

SE-Radio-Episode-253-Fred-George-on-Developer-Anarchy
Answers 383 questions

SE Radio 567: Dave Cross on GitHub Actions
Answers 383 questions

SE-Radio Episode 288: DevSecOps
Answers 383 questions

SE Radio 628: Hans Dockter on Developer Productivity
Answers 383 questions

Episode 544: Ganesh Datta on DevOps vs Site Reliability Engineering
Answers 383 questions

SE-Radio Episode 295: Michael Feathers on Legacy Code
Answers 383 questions

SE Radio 562: Bastian Gruber on Rust Web Development
Answers 383 questions














