<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Orchestrating Go Workflows with the Temporal Framework in Software - General</title>
    <link>https://community.hpe.com/t5/software-general/orchestrating-go-workflows-with-the-temporal-framework/m-p/7255768#M1395</link>
    <description>&lt;P&gt;&lt;FONT size="5"&gt;Introduction:&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;Temporal is a distributed and highly available orchestration engine designed to reliably execute asynchronous, long-running business workflows with scalability and fault tolerance.&lt;/P&gt;&lt;P&gt;Temporal’s hosted service handles brokering and storing the events that occur during workflow execution. The customer-managed worker nodes are responsible for running the coordination and task logic. To simplify building these worker nodes, Temporal offers a Go, Python, Rust, .net client library.&lt;/P&gt;&lt;P&gt;In Temporal, developers can define the event flow as a &lt;STRONG&gt;workflow&lt;/STRONG&gt; and implement the business logic as &lt;STRONG&gt;activities&lt;/STRONG&gt;. The workflow orchestrates and sequences the activities, while each activity performs the actual logic.&lt;/P&gt;&lt;P&gt;This article is focused on how Golang can use&amp;nbsp;Temporal clinet&amp;nbsp;library.&lt;/P&gt;&lt;P&gt;&lt;FONT size="5"&gt;More details of Temporal Framework:&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;Temporal is composed of two main components: a programming framework (client library) and a managed backend service. The framework allows developers to write and coordinate tasks using Go code.&lt;/P&gt;&lt;P&gt;The root &lt;STRONG&gt;temporal&lt;/STRONG&gt; package provides common data structures, while its subpackages offer specialized functionality:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;P&gt;&lt;STRONG&gt;workflow&lt;/STRONG&gt; – Functions for implementing workflows&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;&lt;STRONG&gt;activity&lt;/STRONG&gt; – Functions for implementing activities&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;&lt;STRONG&gt;client&lt;/STRONG&gt; – Functions to create a Temporal service client, used to start and monitor workflow executions&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;&lt;STRONG&gt;worker&lt;/STRONG&gt; – Functions to create worker instances that host workflow and activity code&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;&lt;STRONG&gt;testsuite&lt;/STRONG&gt; – A unit testing framework for workflows and activities.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;FONT size="5"&gt;Key Features:&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Dynamic workflow execution graphs&lt;/STRONG&gt; allow developers to determine the workflow’s execution path at runtime, based on the data being processed. Temporal does not precompute these execution graphs at compile time or at the start of the workflow the workflow decides what to execute as it runs.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Child Workflows&lt;/STRONG&gt; : Enable one workflow to orchestrate and execute another workflow. Once the child workflow completes, Temporal automatically returns its result to the parent workflow.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Signals&lt;/STRONG&gt; : Allow developers to influence or modify the execution path of a running workflow by sending additional data to it in real time. Using signals, Temporal enables workflows to directly consume and react to external events within their code.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Task Routing&lt;/STRONG&gt; : Improves efficiency when processing large datasets by caching the data locally on a specific worker. Temporal ensures that all activities that operate on that data are routed to the same worker, minimizing data transfer overhead and improving performance.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Durable Timers&lt;/STRONG&gt; : Allow developers to schedule delayed task execution within workflows, ensuring reliability even in the event of worker failures. Temporal provides simple APIs workflow.Sleep and workflow.NewTimer to implement time-based events directly in workflows.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Unique Workflow ID Enforcement&lt;/STRONG&gt;&amp;nbsp;: Use business entity IDs as workflow IDs to guarantee that only one workflow instance is running for a given entity at any time. Temporal performs an atomic uniqueness check, preventing race conditions that could otherwise create multiple executions for the same workflow ID.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;ContinueAsNew Workflows&lt;/STRONG&gt; : Allow developers to run periodic tasks as a single, continuously running workflow. Using Temporal’s ContinueAsNew feature, developers can restart the workflow with a fresh history while retaining the same workflow ID taking advantage of unique workflow ID enforcement for recurring executions.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Timeouts for Activities and Workflow Executions&lt;/STRONG&gt;: Prevent workflows or activities from getting stuck or remaining unresponsive by configuring appropriate timeout values. Temporal requires specifying a timeout for every activity or workflow invocation.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Visibility&lt;/STRONG&gt;: Easily monitor and explore developer's workflows. Developers can list all active and completed workflows, and inspect the full execution history of any workflow. Temporal’s visibility APIs give workflow owners insight into both past and ongoing executions.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Debuggability&lt;/STRONG&gt; : Troubleshoot workflows with ease by replaying any workflow execution history locally under a debugger. Temporal’s client library also provides APIs to capture stack traces from failed workflow executions, making root-cause analysis more straightforward.&lt;/P&gt;&lt;P&gt;&lt;FONT size="5"&gt;Usecases:&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;Temporal provides a Go SDK for building durable and scalable applications using Workflows and Activities. Here are some common use cases and examples:&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Long-Running Business Processes:&amp;nbsp;&lt;/STRONG&gt;Use Temporal with Go to manage workflows that need to run for hours, days, or even months without losing state.&lt;BR /&gt;Examples:&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Loan approvals and KYC checks&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Order-to-cash processes&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Data Processing Pipelines:&amp;nbsp;&lt;/STRONG&gt;Go’s concurrency model plus Temporal’s orchestration makes it easy to build scalable data pipelines.&lt;BR /&gt;Examples:&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ETL jobs that extract, transform, and load data from multiple sources&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Machine learning training pipelines.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Microservice Orchestration:&amp;nbsp;&lt;/STRONG&gt;Temporal provides reliable service-to-service communication, and Go is great for building microservices.&lt;BR /&gt;Examples:&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Coordinating calls across payment, inventory, and shipping services&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Handling retries, rollbacks, and compensation logic when failures occur&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Guaranteeing exactly-once execution for critical workflows&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Periodic &amp;amp; Maintenance Jobs:&amp;nbsp;&lt;/STRONG&gt;Replace brittle cron jobs with durable, failure-resilient workflows.&lt;BR /&gt;Examples:&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Database cleanup or compaction jobs&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Automated report generation&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Rotating credentials or certificates&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Combine Go event producers/consumers with Temporal workflow&lt;/STRONG&gt;s that react to external events.&lt;BR /&gt;Examples:&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; IoT device data workflows that react to incoming sensor data&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Fraud detection pipelines triggered by suspicious transactions&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Dynamic fan-out/fan-in processing based on incoming event batches&lt;/P&gt;&lt;P&gt;&lt;FONT size="5"&gt;Coding Examples:&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;Example of a Temporal Go application code demonstrating a simple workflow and activity:&lt;/P&gt;&lt;P&gt;1. Define the Activity:&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2025-09-13 150158.png" style="width: 1108px;"&gt;&lt;img src="https://community.hpe.com/t5/image/serverpage/image-id/151910iF775C9320E5F7CC7/image-size/large?v=v2&amp;amp;px=2000" role="button" title="Screenshot 2025-09-13 150158.png" alt="Screenshot 2025-09-13 150158.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;2. Define the Workflow:&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2025-09-13 150433.png" style="width: 1369px;"&gt;&lt;img src="https://community.hpe.com/t5/image/serverpage/image-id/151911i51ACA1975E6C8CE5/image-size/large?v=v2&amp;amp;px=2000" role="button" title="Screenshot 2025-09-13 150433.png" alt="Screenshot 2025-09-13 150433.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;3. Implement the Worker:&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2025-09-13 150632.png" style="width: 1056px;"&gt;&lt;img src="https://community.hpe.com/t5/image/serverpage/image-id/151912i8D17CF58585BDCAD/image-size/large?v=v2&amp;amp;px=2000" role="button" title="Screenshot 2025-09-13 150632.png" alt="Screenshot 2025-09-13 150632.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;4. Implement the Client (Starter):&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2025-09-13 150909.png" style="width: 1359px;"&gt;&lt;img src="https://community.hpe.com/t5/image/serverpage/image-id/151913iAA3D45F9AB7BA070/image-size/large?v=v2&amp;amp;px=2000" role="button" title="Screenshot 2025-09-13 150909.png" alt="Screenshot 2025-09-13 150909.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="5"&gt;Summary:&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;Using &lt;STRONG&gt;Temporal&lt;/STRONG&gt; with &lt;STRONG&gt;Go&lt;/STRONG&gt; , developers can build fault-tolerant, long-running, and event-driven workflows in a way that is simple, scalable, and reliable.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Programming Model&lt;/STRONG&gt; : developers write workflows and activities as plain Go functions. Workflows define orchestration logic, while activities perform business logic.&lt;BR /&gt;&lt;STRONG&gt;Deterministic Execution&lt;/STRONG&gt; : Temporal ensures workflow code is replayed deterministically, so even long-running workflows can survive process restarts or crashes.&lt;BR /&gt;&lt;STRONG&gt;Fault Tolerance&lt;/STRONG&gt; : If a worker fails, Temporal automatically reschedules tasks on another available worker — no lost progress.&lt;BR /&gt;&lt;STRONG&gt;Dynamic Execution&lt;/STRONG&gt; : Workflows can make runtime decisions, spawn child workflows, handle external signals, and process events as they come.&lt;BR /&gt;&lt;STRONG&gt;Built-in Reliability&lt;/STRONG&gt; : Temporal manages retries, state persistence, and unique workflow IDs, avoiding race conditions and duplicate processing.&lt;/P&gt;</description>
    <pubDate>Sat, 13 Sep 2025 09:53:24 GMT</pubDate>
    <dc:creator>anandtk</dc:creator>
    <dc:date>2025-09-13T09:53:24Z</dc:date>
    <item>
      <title>Orchestrating Go Workflows with the Temporal Framework</title>
      <link>https://community.hpe.com/t5/software-general/orchestrating-go-workflows-with-the-temporal-framework/m-p/7255768#M1395</link>
      <description>&lt;P&gt;&lt;FONT size="5"&gt;Introduction:&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;Temporal is a distributed and highly available orchestration engine designed to reliably execute asynchronous, long-running business workflows with scalability and fault tolerance.&lt;/P&gt;&lt;P&gt;Temporal’s hosted service handles brokering and storing the events that occur during workflow execution. The customer-managed worker nodes are responsible for running the coordination and task logic. To simplify building these worker nodes, Temporal offers a Go, Python, Rust, .net client library.&lt;/P&gt;&lt;P&gt;In Temporal, developers can define the event flow as a &lt;STRONG&gt;workflow&lt;/STRONG&gt; and implement the business logic as &lt;STRONG&gt;activities&lt;/STRONG&gt;. The workflow orchestrates and sequences the activities, while each activity performs the actual logic.&lt;/P&gt;&lt;P&gt;This article is focused on how Golang can use&amp;nbsp;Temporal clinet&amp;nbsp;library.&lt;/P&gt;&lt;P&gt;&lt;FONT size="5"&gt;More details of Temporal Framework:&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;Temporal is composed of two main components: a programming framework (client library) and a managed backend service. The framework allows developers to write and coordinate tasks using Go code.&lt;/P&gt;&lt;P&gt;The root &lt;STRONG&gt;temporal&lt;/STRONG&gt; package provides common data structures, while its subpackages offer specialized functionality:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;P&gt;&lt;STRONG&gt;workflow&lt;/STRONG&gt; – Functions for implementing workflows&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;&lt;STRONG&gt;activity&lt;/STRONG&gt; – Functions for implementing activities&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;&lt;STRONG&gt;client&lt;/STRONG&gt; – Functions to create a Temporal service client, used to start and monitor workflow executions&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;&lt;STRONG&gt;worker&lt;/STRONG&gt; – Functions to create worker instances that host workflow and activity code&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;&lt;STRONG&gt;testsuite&lt;/STRONG&gt; – A unit testing framework for workflows and activities.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;FONT size="5"&gt;Key Features:&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Dynamic workflow execution graphs&lt;/STRONG&gt; allow developers to determine the workflow’s execution path at runtime, based on the data being processed. Temporal does not precompute these execution graphs at compile time or at the start of the workflow the workflow decides what to execute as it runs.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Child Workflows&lt;/STRONG&gt; : Enable one workflow to orchestrate and execute another workflow. Once the child workflow completes, Temporal automatically returns its result to the parent workflow.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Signals&lt;/STRONG&gt; : Allow developers to influence or modify the execution path of a running workflow by sending additional data to it in real time. Using signals, Temporal enables workflows to directly consume and react to external events within their code.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Task Routing&lt;/STRONG&gt; : Improves efficiency when processing large datasets by caching the data locally on a specific worker. Temporal ensures that all activities that operate on that data are routed to the same worker, minimizing data transfer overhead and improving performance.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Durable Timers&lt;/STRONG&gt; : Allow developers to schedule delayed task execution within workflows, ensuring reliability even in the event of worker failures. Temporal provides simple APIs workflow.Sleep and workflow.NewTimer to implement time-based events directly in workflows.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Unique Workflow ID Enforcement&lt;/STRONG&gt;&amp;nbsp;: Use business entity IDs as workflow IDs to guarantee that only one workflow instance is running for a given entity at any time. Temporal performs an atomic uniqueness check, preventing race conditions that could otherwise create multiple executions for the same workflow ID.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;ContinueAsNew Workflows&lt;/STRONG&gt; : Allow developers to run periodic tasks as a single, continuously running workflow. Using Temporal’s ContinueAsNew feature, developers can restart the workflow with a fresh history while retaining the same workflow ID taking advantage of unique workflow ID enforcement for recurring executions.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Timeouts for Activities and Workflow Executions&lt;/STRONG&gt;: Prevent workflows or activities from getting stuck or remaining unresponsive by configuring appropriate timeout values. Temporal requires specifying a timeout for every activity or workflow invocation.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Visibility&lt;/STRONG&gt;: Easily monitor and explore developer's workflows. Developers can list all active and completed workflows, and inspect the full execution history of any workflow. Temporal’s visibility APIs give workflow owners insight into both past and ongoing executions.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Debuggability&lt;/STRONG&gt; : Troubleshoot workflows with ease by replaying any workflow execution history locally under a debugger. Temporal’s client library also provides APIs to capture stack traces from failed workflow executions, making root-cause analysis more straightforward.&lt;/P&gt;&lt;P&gt;&lt;FONT size="5"&gt;Usecases:&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;Temporal provides a Go SDK for building durable and scalable applications using Workflows and Activities. Here are some common use cases and examples:&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Long-Running Business Processes:&amp;nbsp;&lt;/STRONG&gt;Use Temporal with Go to manage workflows that need to run for hours, days, or even months without losing state.&lt;BR /&gt;Examples:&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Loan approvals and KYC checks&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Order-to-cash processes&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Data Processing Pipelines:&amp;nbsp;&lt;/STRONG&gt;Go’s concurrency model plus Temporal’s orchestration makes it easy to build scalable data pipelines.&lt;BR /&gt;Examples:&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ETL jobs that extract, transform, and load data from multiple sources&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Machine learning training pipelines.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Microservice Orchestration:&amp;nbsp;&lt;/STRONG&gt;Temporal provides reliable service-to-service communication, and Go is great for building microservices.&lt;BR /&gt;Examples:&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Coordinating calls across payment, inventory, and shipping services&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Handling retries, rollbacks, and compensation logic when failures occur&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Guaranteeing exactly-once execution for critical workflows&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Periodic &amp;amp; Maintenance Jobs:&amp;nbsp;&lt;/STRONG&gt;Replace brittle cron jobs with durable, failure-resilient workflows.&lt;BR /&gt;Examples:&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Database cleanup or compaction jobs&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Automated report generation&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Rotating credentials or certificates&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Combine Go event producers/consumers with Temporal workflow&lt;/STRONG&gt;s that react to external events.&lt;BR /&gt;Examples:&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; IoT device data workflows that react to incoming sensor data&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Fraud detection pipelines triggered by suspicious transactions&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Dynamic fan-out/fan-in processing based on incoming event batches&lt;/P&gt;&lt;P&gt;&lt;FONT size="5"&gt;Coding Examples:&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;Example of a Temporal Go application code demonstrating a simple workflow and activity:&lt;/P&gt;&lt;P&gt;1. Define the Activity:&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2025-09-13 150158.png" style="width: 1108px;"&gt;&lt;img src="https://community.hpe.com/t5/image/serverpage/image-id/151910iF775C9320E5F7CC7/image-size/large?v=v2&amp;amp;px=2000" role="button" title="Screenshot 2025-09-13 150158.png" alt="Screenshot 2025-09-13 150158.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;2. Define the Workflow:&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2025-09-13 150433.png" style="width: 1369px;"&gt;&lt;img src="https://community.hpe.com/t5/image/serverpage/image-id/151911i51ACA1975E6C8CE5/image-size/large?v=v2&amp;amp;px=2000" role="button" title="Screenshot 2025-09-13 150433.png" alt="Screenshot 2025-09-13 150433.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;3. Implement the Worker:&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2025-09-13 150632.png" style="width: 1056px;"&gt;&lt;img src="https://community.hpe.com/t5/image/serverpage/image-id/151912i8D17CF58585BDCAD/image-size/large?v=v2&amp;amp;px=2000" role="button" title="Screenshot 2025-09-13 150632.png" alt="Screenshot 2025-09-13 150632.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;4. Implement the Client (Starter):&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2025-09-13 150909.png" style="width: 1359px;"&gt;&lt;img src="https://community.hpe.com/t5/image/serverpage/image-id/151913iAA3D45F9AB7BA070/image-size/large?v=v2&amp;amp;px=2000" role="button" title="Screenshot 2025-09-13 150909.png" alt="Screenshot 2025-09-13 150909.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="5"&gt;Summary:&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;Using &lt;STRONG&gt;Temporal&lt;/STRONG&gt; with &lt;STRONG&gt;Go&lt;/STRONG&gt; , developers can build fault-tolerant, long-running, and event-driven workflows in a way that is simple, scalable, and reliable.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Programming Model&lt;/STRONG&gt; : developers write workflows and activities as plain Go functions. Workflows define orchestration logic, while activities perform business logic.&lt;BR /&gt;&lt;STRONG&gt;Deterministic Execution&lt;/STRONG&gt; : Temporal ensures workflow code is replayed deterministically, so even long-running workflows can survive process restarts or crashes.&lt;BR /&gt;&lt;STRONG&gt;Fault Tolerance&lt;/STRONG&gt; : If a worker fails, Temporal automatically reschedules tasks on another available worker — no lost progress.&lt;BR /&gt;&lt;STRONG&gt;Dynamic Execution&lt;/STRONG&gt; : Workflows can make runtime decisions, spawn child workflows, handle external signals, and process events as they come.&lt;BR /&gt;&lt;STRONG&gt;Built-in Reliability&lt;/STRONG&gt; : Temporal manages retries, state persistence, and unique workflow IDs, avoiding race conditions and duplicate processing.&lt;/P&gt;</description>
      <pubDate>Sat, 13 Sep 2025 09:53:24 GMT</pubDate>
      <guid>https://community.hpe.com/t5/software-general/orchestrating-go-workflows-with-the-temporal-framework/m-p/7255768#M1395</guid>
      <dc:creator>anandtk</dc:creator>
      <dc:date>2025-09-13T09:53:24Z</dc:date>
    </item>
  </channel>
</rss>

