{"id":30067153,"url":"https://github.com/scottlogic/temporal-examples","last_synced_at":"2025-08-08T08:08:53.039Z","repository":{"id":308750061,"uuid":"1024322477","full_name":"ScottLogic/temporal-examples","owner":"ScottLogic","description":null,"archived":false,"fork":false,"pushed_at":"2025-08-07T16:58:04.000Z","size":81,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-08-07T18:20:32.469Z","etag":null,"topics":["sl-classification-internal","sl-owner-sbenson","sl-status-active"],"latest_commit_sha":null,"homepage":"","language":"C#","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/ScottLogic.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-07-22T14:15:11.000Z","updated_at":"2025-08-07T16:58:09.000Z","dependencies_parsed_at":"2025-08-07T18:36:49.587Z","dependency_job_id":null,"html_url":"https://github.com/ScottLogic/temporal-examples","commit_stats":null,"previous_names":["scottlogic/temporal-examples"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/ScottLogic/temporal-examples","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ScottLogic%2Ftemporal-examples","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ScottLogic%2Ftemporal-examples/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ScottLogic%2Ftemporal-examples/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ScottLogic%2Ftemporal-examples/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ScottLogic","download_url":"https://codeload.github.com/ScottLogic/temporal-examples/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ScottLogic%2Ftemporal-examples/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":269385800,"owners_count":24408433,"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-08T02:00:09.200Z","response_time":72,"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":["sl-classification-internal","sl-owner-sbenson","sl-status-active"],"created_at":"2025-08-08T08:08:49.098Z","updated_at":"2025-08-08T08:08:53.023Z","avatar_url":"https://github.com/ScottLogic.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# temporal-examples\n\n## Purpose of this Repo\n\nThis is to show several features of Temporal in a way that is easy to understand and run. All you\nneed is Docker as everything will run in Docker containers.\n\nIt will run a [Swagger page](http://localhost:8080/swagger/index.html) that allows you to start\nworkflows and send signals to paused workflows via a REST API.\n\n## Running the project - you'll need Docker\n\nMake sure your terminal is in the temporal-examples folder and then run `docker compose up`. This\nwill start all services. If you ever need to debug the Temporal workflows you can debug via a Docker\ncontainer by installing the \"Container Tools\" extension in VS Code. There is also an option to do\nthe debugging through Visual Studio tooling as well.\n\nThis set of Docker containers actually installs the Temporal CLI to an isolated. If you want to\nexecute commands using it you should either exec into it or access exec in Docker Desktop. The\ncontainer is named `temporal-cli`. If you want examples of this go to the `temporal-examples/scripts`\nfolder. There is also the documentation [here](https://docs.temporal.io/cli#command-set)\n\n## Examples\n\nWe have several different examples of what Temporal can do in the Workflows files which are in the\nWorkflows project.\n\n**Examples.workflow.cs** - shows a default Temporal workflow with a generic activity\n\n**ExampleWithChildren.workflow.cs** - shows you how you can compose workflows together. This creates\n1-10 child workflows and waits for them to finish.\n\n**WaitingSignal.workflow.cs** - shows how you can pause a workflow indefinitely or with a timeout to\nwait for a \"signal\". This signal in our example is caused by a REST API. While paused the workflow\ntakes up very few resources. The SignalController inside the rest-controller project is where we send\nthe signal. This also shows how you can search the Temporal Server for specific workflows. In this\ncase we are using the Workflow ID.\n\n## Monitoring and Metrics\n\nThe docker compose file contains [Prometheus](https://prometheus.io/) and\n[Grafana](https://grafana.com/) services. Both the Temporal service and all worker services expose\nmetrics to Prometheus, which are collected based on the settings in `prometheus.yml`. Prometheus can\nbe manually added to Grafana as a data source.\n\nThe Prometheus UI can be accessed at [query page](http://localhost:9090/query), and details of the\ndifferent scraped metrics endpoints can be seen at [targets page](http://localhost:9090/targets).\n\nThe Grafana UI can be accessed at [Grafana login](http://localhost:3000/login) - Login details are\nadmin/admin.\n\n## License\n\nSee License.md\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscottlogic%2Ftemporal-examples","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fscottlogic%2Ftemporal-examples","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscottlogic%2Ftemporal-examples/lists"}