{"id":28506625,"url":"https://github.com/temporalio/reference-app-orders-go","last_synced_at":"2025-08-22T12:09:58.824Z","repository":{"id":242563603,"uuid":"763709490","full_name":"temporalio/reference-app-orders-go","owner":"temporalio","description":"OMS - Order processing reference application","archived":false,"fork":false,"pushed_at":"2025-06-03T14:36:10.000Z","size":4409,"stargazers_count":49,"open_issues_count":1,"forks_count":11,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-07-05T04:03:20.520Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/temporalio.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-02-26T19:29:08.000Z","updated_at":"2025-06-26T21:02:58.000Z","dependencies_parsed_at":"2024-07-05T20:03:18.685Z","dependency_job_id":"9d8b26dc-e753-47b3-bec8-dfc1eeee9807","html_url":"https://github.com/temporalio/reference-app-orders-go","commit_stats":null,"previous_names":["temporalio/reference-app-orders-go","temporalio/orders-reference-app-go"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/temporalio/reference-app-orders-go","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/temporalio%2Freference-app-orders-go","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/temporalio%2Freference-app-orders-go/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/temporalio%2Freference-app-orders-go/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/temporalio%2Freference-app-orders-go/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/temporalio","download_url":"https://codeload.github.com/temporalio/reference-app-orders-go/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/temporalio%2Freference-app-orders-go/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271636017,"owners_count":24794144,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-22T02:00:08.480Z","response_time":65,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-06-08T20:06:04.177Z","updated_at":"2025-08-22T12:09:58.792Z","avatar_url":"https://github.com/temporalio.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Temporal Reference Application: Order Management System (Go)\n\n![OMS logo](docs/images/oms-logo.png)\n\nThe Order Management System (OMS) is a reference application that \ndemonstrates one way to approach the design and implementation of \nan order processing system based on Temporal Workflows. You can run \nthis application locally (directly on a laptop) or in a Kubernetes \ncluster. In addition, the required Temporal Service can be run locally, \nor be provided by a remote self-hosted deployment, or be provided by \nTemporal Cloud. \n\n## Quickstart\nWe recommend that you begin by reading the [documentation](docs/README.md), \nwhich will explain the features of the application and aspects \nof its design. It also provides instructions for deploying and \nrunning the application in various environments.\n\nIf you'd like to jump right in and run the OMS locally, clone this \nrepository to your machine and follow the steps below. Unless otherwise \nnoted, you should execute the commands from the root directory of your \nclone. \n\nYou can also see a demonstration of these steps in the _[Setting\nup and running the OMS](https://www.youtube.com/watch?v=ltlC7kVdFEU\u0026list=PLl9kRkvFJrlRNbBZYY9v1XaAjqb2oj8pv\u0026index=2)_ video, part of a [four-part video series](https://www.youtube.com/playlist?v=ltlC7kVdFEU\u0026list=PLl9kRkvFJrlRNbBZYY9v1XaAjqb2oj8pv) that covers the OMS.\n\n### Required Software\nYou will need [Go](https://go.dev/) to run the core OMS application, \nthe [Temporal CLI](https://docs.temporal.io/cli#install) to run the \nTemporal Service locally, plus [Node.js](https://nodejs.org/) and \nthe [pnpm](https://pnpm.io/) package manager to run the OMS web \napplication. \n\n\n### Start the Temporal Service\nRun the following command in your terminal:\n\n```command\ntemporal server start-dev --ui-port 8080 --db-filename temporal-persistence.db\n```\n\nThe Temporal Service manages application state by assigning tasks\nrelated to each Workflow Execution and tracking the completion of \nthose tasks. The detailed history it maintains for each execution \nenables the application to recover from a crash by reconstructing \nits pre-crash state and resuming the execution.\n\n### Start the Workers\nRun the following command in another terminal:\n\n```command\ngo run ./cmd/oms worker\n```\n\nThis command starts both Workflow and Activity Workers in a single\nprocess. The Workers run Workflow and Activity functions, which \ncarry out the various aspects of order processing.\n\n### Start the API Servers\nRun the following command in another terminal:\n```command\ngo run ./cmd/oms api\n```\n\nThe API Servers provide REST APIs that the web application uses to \ninteract with the OMS. \n\n\n### Run the Web Application\nYou will need to clone the code for the web application, which is \nmaintained separately in the \n[reference-app-orders-web](https://github.com/temporalio/reference-app-orders-web) \nrepository:\n\n```command\ncd ..\ngit clone https://github.com/temporalio/reference-app-orders-web.git\n```\n\nYou will then need to run the following commands to start it:\n\n```command\ncd reference-app-orders-web\npnpm install\npnpm dev\n```\n\nYou will then be able to access the OMS web application at \n\u003chttp://localhost:5173/\u003e and the Temporal Web UI at \n\u003chttp://localhost:8080/\u003e. In the OMS web application, select \nthe **User** role, and then submit an order (we recommend \nchoosing order #1 to start). Next, return to the main page\nof the web application, select the **Courier** role, locate\nthe shipments corresponding to your order, and then click \nthe **Dispatch** and **Deliver** buttons to complete the \nprocess. As you proceed with each of these steps, be sure \nto refresh the Temporal Web UI so that you can see the \nWorkflows created and updated as a result. \n\n\n## Find Your Way Around\nThis repository provides four subdirectories of interest:\n\n| Directory                                             | Description                                                       |\n| ----------------------------------------------------- | ----------------------------------------------------------------- |\n| \u003ccode\u003e\u003ca href=\"app/\"\u003eapp/\u003c/a\u003e\u003c/code\u003e                  | Application code                                                  |\n| \u003ccode\u003e\u003ca href=\"cmd/\"\u003ecmd/\u003c/a\u003e\u003c/code\u003e                  | Command-line tools provided by the application                    |\n| \u003ccode\u003e\u003ca href=\"deployments/\"\u003edeployments/\u003c/a\u003e\u003c/code\u003e  | Tools and configuration files used to deploy the application      |\n| \u003ccode\u003e\u003ca href=\"docs/\"\u003edocs/\u003c/a\u003e\u003c/code\u003e                | Documentation                                                     |\n\nSee the [documentation](docs/README.md) for more information.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftemporalio%2Freference-app-orders-go","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftemporalio%2Freference-app-orders-go","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftemporalio%2Freference-app-orders-go/lists"}