This is a simple project for demonstrating Temporal with the Go SDK.

Temporal Go Project Template

This is a simple project for demonstrating Temporal with the Go SDK.

The full 20 minute guide is here: https://docs.temporal.io/docs/go/run-your-first-app-tutorial

Basic instructions

Step 0: Temporal Server

Make sure Temporal Server is running first:

git clone https://github.com/temporalio/docker-compose.git
cd  docker-compose
docker-compose up

Leave it running. You can see Temporal Web at localhost:8088. There should be no workflows visible in the dashboard right now.

Step 1: Clone this repo

In another terminal instance, clone this repo and run this application.

git clone https://github.com/temporalio/money-transfer-project-template-go
cd money-transfer-project-template-go

Step 2: Run the Workflow

go run start/main.go

Observe that Temporal Web reflects the workflow, but it is still in "Running" status. This is because there is no Workflow or Activity Worker yet listening to the TRANSFER_MONEY_TASK_QUEUE task queue to process this work.

Step 3: Run the Worker

In YET ANOTHER terminal instance, run the worker. Notice that this worker hosts both Workflow and Activity functions.

go run worker/main.go

Now you can see the workflow run to completion. You can also see the worker polling for workflows and activities in the task queue at http://localhost:8088/namespaces/default/task-queues/TRANSFER_MONEY_TASK_QUEUE.

CleanShot 2021-07-20 at 17 48 45@2x

What Next?

You can run the Workflow code a few more times with go run start/main.go to understand how it interacts with the Worker and Temporal Server.

Please read the tutorial for more details.

Similar Resources

A small project for a simple chatroom using golang.

A small project for a simple chatroom using golang.

chatroom_go A small project for a simple chatroom using golang. 项目编码流程的设计分析 通讯逻辑示意图 客户端部分 客户端登录功能 1.接收的输入id和密码 2.接收服务端的返回结果 3.判断是成功还是失败,并显示对应的页面 客户端发送

Jul 3, 2022

A Go project template

Powered by Cookiecutter, Cookiecutter Golang is a framework for jumpstarting production-ready go projects quickly.

Dec 26, 2022

GoLang Library for Browser Capabilities Project

Browser Capabilities GoLang Project PHP has get_browser() function which tells what the user's browser is capable of. You can check original documenta

Sep 27, 2022

:guardsman: A teeny tiny and somewhat opinionated generator for your next golang project

A Yeoman Golang Generator We are very sorry Gophers, but other names for the generator where taken, so we choose go-lang. But we have gocreate as an a

Sep 27, 2022

Example programs for the Gio project.

Gio Examples Example programs for the Gio project. Issues File bugs and TODOs through the issue tracker or send an email to ~eliasnaur/[email protected].

Dec 20, 2022

Standard Go Project Layout

Standard Go Project Layout

This is a basic layout for Go application projects. It's not an official standard defined by the core Go dev team; however, it is a set of common historical and emerging project layout patterns in the Go ecosystem. Some of these patterns are more popular than others. It also has a number of small enhancements along with several supporting directories common to any large enough real world application.

Jan 3, 2023

bytecamp 2021 project

Calldiff 背景 复杂项目的日常迭代中,研发同学想了解某个改动的影响点,往往需要深入代码细节才能获得尽可能全的 checklist 。然而,由于项目的复杂性,我们获得的 checklist 又难免会有一些遗漏。 为了减轻研发同学的心智负担,辅助同学们更有效地保证服务稳定性,本项目应运而生。 本

Oct 4, 2021

This is an example of the cobra project

Devops cmd and mian.go This is an example of the cobra project Execute the following command in the current path to compile the project,you will appea

Sep 6, 2022

feedme project porting in Go language

newsapi-go This project has the intent to provide a valid interface for newsapi (https://newsapi.org/). usage The project is still under mantainance a

Oct 28, 2021
Example project for Temporal microservice orchestarion.
Example project for Temporal microservice orchestarion.

Temporal Microservice Introduction This project is created to understand Temporal's Microservice approachment. The repo contains: Example Temporal Mic

Oct 4, 2022
An experimental distribution of Temporal that runs as a single process

Temporalite ⚠️ This project is experimental and not suitable for production use. ⚠️ Temporalite is a distribution of Temporal that runs as a single pr

Dec 31, 2022
Temporal Server docker-compose files

Temporal Server docker-compose files This repository provides docker-compose fil

Dec 24, 2021
The temporal cloud cli.

tcld (Beta) A cli tool for managing Temporal Cloud namespaces. This cli tool is currently in beta and access to Temporal Cloud via the cli is restrict

Nov 1, 2022
Moby Project - a collaborative project for the container ecosystem to assemble container-based systems
Moby Project - a collaborative project for the container ecosystem to assemble container-based systems

The Moby Project Moby is an open-source project created by Docker to enable and accelerate software containerization. It provides a "Lego set" of tool

Jan 2, 2023
Placeholder for the future project (lets-go-chat)Placeholder for the future project (lets-go-chat)

Placeholder for the future project (lets-go-chat)Placeholder for the future project (lets-go-chat)

Jan 10, 2022
The phylosophy behind readyGo is "A Simple configuration should give a working project.".
The phylosophy behind readyGo is

The phylosophy behind readyGo is "A Simple configuration should give a working project.". readyGo is a command line interface( probably the name of re

Oct 30, 2021
A simple and sussy project is an implementation of SOMMIP Lab 1 written in Golang
A simple and sussy project is an implementation of SOMMIP Lab 1 written in Golang

SOMMIP Lab 1 Isac Arthur Table of Contents About The Project Getting Started Prerequisites Installation Supported commands About The Project This very

Nov 10, 2021
Ultra simple project scaffolding
Ultra simple project scaffolding

?? You can help the author become a full-time open-source maintainer by sponsoring him on GitHub. aho ultra simple project scaffolding Install curl -f

Dec 28, 2022
A simple project/module generated tool written in go

A module generator written in go This is a project/module generator written in go. It is intended to generate standard project/module layouts in the t

Oct 17, 2022