{"id":13542752,"url":"https://github.com/temporalio/temporal-pendulum","last_synced_at":"2025-04-02T12:30:41.550Z","repository":{"id":38618458,"uuid":"387831309","full_name":"temporalio/temporal-pendulum","owner":"temporalio","description":"Demo showing off Temporal Polyglot features (Java, Go, TypeScript, PHP)","archived":false,"fork":false,"pushed_at":"2024-01-19T02:32:01.000Z","size":19046,"stargazers_count":16,"open_issues_count":1,"forks_count":9,"subscribers_count":10,"default_branch":"main","last_synced_at":"2024-11-03T09:33:29.309Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"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":null,"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}},"created_at":"2021-07-20T15:13:16.000Z","updated_at":"2024-05-21T05:24:54.000Z","dependencies_parsed_at":"2024-11-03T09:41:29.487Z","dependency_job_id":null,"html_url":"https://github.com/temporalio/temporal-pendulum","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/temporalio%2Ftemporal-pendulum","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/temporalio%2Ftemporal-pendulum/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/temporalio%2Ftemporal-pendulum/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/temporalio%2Ftemporal-pendulum/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/temporalio","download_url":"https://codeload.github.com/temporalio/temporal-pendulum/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246815249,"owners_count":20838410,"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","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":"2024-08-01T11:00:16.938Z","updated_at":"2025-04-02T12:30:36.540Z","avatar_url":"https://github.com/temporalio.png","language":"Java","funding_links":[],"categories":["Samples"],"sub_categories":["Terraform Providers"],"readme":"# Temporal Polyglot Demo - Pendulum\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"img/pendulumnew.png\" height=\"300px\" alt=\"Temporal Pendulum Game\"/\u003e\n\u003c/p\u003e\n\nThis demo uses the following Temporal SDKs:\n\n* [Go](https://docs.temporal.io/docs/go/introduction)\n* [Java](https://docs.temporal.io/docs/java/introduction)\n* [Node](https://docs.temporal.io/docs/node/introduction)\n* [PHP](https://docs.temporal.io/docs/php/introduction)\n\n## Running the demo\n\n### Start the Temporal Server\n\n```shell script\ngit clone https://github.com/temporalio/docker-compose.git\ncd docker-compose\ndocker compose up\n```\n\n### Start the positioning services\n\n#### Go Positioning Service\n\n```shell script\ncd position-go\ngo run worker/main.go\n```\n\n#### Java Positioning Service\n\n```shell script\ncd position-java\nmvn compile exec:java -Dexec.mainClass=\"io.temporal.demo.pendulum.position.Starter\"\n```\n\n#### Node Positioning Service\n\nIf running for the first time:\n\n```shell script\ncd position-node\nnvm use\nnpm install\nnpm start\n```\n\nFor consecutive runs:\n\n```shell script\ncd position-node\nnpm start\n```\n\n#### PHP Positioning Service\n\nIf running for the first time:\n\n```shell script\ncd position-php\ncomposer install\ncomposer update\n./rr serve\n```\n\nFor consecutive runs:\n\n```shell script\ncd position-php\n./rr serve\n```\n\n### Start the game\n\n```shell script\ncd game\nmvn compile exec:java -Dexec.mainClass=\"io.temporal.demo.pendulum.Pendulum\"\n```\n\n### Playing the game\n\nWithin the game you can change the positioning implementations\nby clicking the buttons on the right.\n\nNotice how the state of the pendulum (position, acceleration, movement)\nis preserved once you switch from one workflow to another.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftemporalio%2Ftemporal-pendulum","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftemporalio%2Ftemporal-pendulum","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftemporalio%2Ftemporal-pendulum/lists"}