{"id":18063253,"url":"https://github.com/scale-tone/repka-durable-func","last_synced_at":"2025-04-05T13:14:24.107Z","repository":{"id":87790923,"uuid":"330470791","full_name":"scale-tone/repka-durable-func","owner":"scale-tone","description":"Reverses a linked list with Azure Durable Functions. For demo purposes only. Sample linked list comes from https://en.wikipedia.org/wiki/The_Gigantic_Turnip folktale. ","archived":false,"fork":false,"pushed_at":"2021-01-22T20:52:54.000Z","size":373,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-11T08:40:33.733Z","etag":null,"topics":["azure-durable-functions","serverless","typescript"],"latest_commit_sha":null,"homepage":"https://twitter.com/tino_scale_tone","language":"Liquid","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/scale-tone.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":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-01-17T19:34:22.000Z","updated_at":"2021-01-22T20:56:49.000Z","dependencies_parsed_at":null,"dependency_job_id":"993c6012-a21f-4914-914c-1b096895d616","html_url":"https://github.com/scale-tone/repka-durable-func","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/scale-tone%2Frepka-durable-func","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scale-tone%2Frepka-durable-func/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scale-tone%2Frepka-durable-func/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scale-tone%2Frepka-durable-func/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/scale-tone","download_url":"https://codeload.github.com/scale-tone/repka-durable-func/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247339160,"owners_count":20923014,"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":["azure-durable-functions","serverless","typescript"],"created_at":"2024-10-31T05:10:20.553Z","updated_at":"2025-04-05T13:14:24.086Z","avatar_url":"https://github.com/scale-tone.png","language":"Liquid","readme":"# The Saga of Repka\n\nThis [Azure Durable Function](https://docs.microsoft.com/en-us/azure/azure-functions/durable/durable-functions-overview?tabs=javascript) implements the algorithm of reversing a [linked list](https://en.wikipedia.org/wiki/Linked_list) in form of a [Durable Orchestration](https://docs.microsoft.com/en-us/azure/azure-functions/durable/durable-functions-orchestrations?tabs=javascript) written in TypeScript.\n\nIt does so solely for fun and demo purposes.\n\nThe sample linked list represents [The Gigantic Turnip](https://en.wikipedia.org/wiki/The_Gigantic_Turnip) Russian folktale (which not only fits well into the context, but also promotes teamwork). That list constitutes the actual state of the Durable Orchestration.\n\n# Prerequisites\nPlease, have [Azure Functions Core Tools](https://www.npmjs.com/package/azure-functions-core-tools) **globally** installed on your devbox.\n\n## How to run locally\n\n* In the project's folder create a `local.settings.json` file, which should look like this:\n\n```\n{\n  \"IsEncrypted\": false,\n  \"Values\": {\n    \"AzureWebJobsStorage\": \"your-azure-storage-connection-string\",\n    \"FUNCTIONS_WORKER_RUNTIME\": \"node\"\n  }\n}\n```\n\n* Go to the project's folder with your command prompt and type the following:\n\n```\nnpm install\nnpm start\n```\n\n* Navigate to http://localhost:7071/api/start-the-saga\n\nThis will create a new `RepkaHub` Task Hub and start a new instance of [the-saga-of-repka](https://github.com/scale-tone/repka-durable-func/blob/master/the-saga-of-repka/index.ts) orchestration in it. Subsequent calls to that method will recreate the same instance, causing it to reverse its linked list backwards and forwards.\n\nOnce you started an Orchestration, you can monitor its state with [Durable Functions Monitor](https://github.com/scale-tone/DurableFunctionsMonitor). This sample also includes a [custom status tab template for it](https://github.com/scale-tone/repka-durable-func/blob/master/Repka%20Status.the-saga-of-repka.liquid), which visualizes the process in a beautiful and authentic way: https://twitter.com/tino_scale_tone/status/1350936310035472386.\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscale-tone%2Frepka-durable-func","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fscale-tone%2Frepka-durable-func","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscale-tone%2Frepka-durable-func/lists"}