Published Dec 27, 2023

SE Radio 596: Maxim Fateev on Durable Execution with Temporal

Maxim Fateev, CEO of Temporal, delves into the architecture and advantages of Temporal Cloud, exploring its capabilities in durable execution for enhancing software reliability and managing complex workflows efficiently. Discover Temporal's robust solutions for scalable, secure deployments in distributed systems through detailed discussions on workflows, activities, and state management.
Episode Highlights
Software Engineering Radio - the podcast for professional software developers logo

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