{"id":44487974,"url":"https://github.com/durable-workflow/workflow","last_synced_at":"2026-03-09T11:33:21.397Z","repository":{"id":57012098,"uuid":"463354076","full_name":"durable-workflow/workflow","owner":"durable-workflow","description":"Durable workflow engine that allows users to track job status, orchestrate microservices and write long running persistent distributed workflows in PHP powered by Laravel Queues. Inspired by Temporal and Azure Durable Functions.","archived":false,"fork":false,"pushed_at":"2026-03-09T04:25:21.000Z","size":500,"stargazers_count":1171,"open_issues_count":3,"forks_count":64,"subscribers_count":19,"default_branch":"master","last_synced_at":"2026-03-09T08:54:12.860Z","etag":null,"topics":["background-jobs","bpm","bpmn","durable-functions","jobs","laravel","microservices","orchestration","php","queueing","status","workflow","workflow-engine","workflows"],"latest_commit_sha":null,"homepage":"https://durable-workflow.com","language":"PHP","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/durable-workflow.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/funding.yml","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"durable-workflow"}},"created_at":"2022-02-25T01:15:04.000Z","updated_at":"2026-03-03T20:16:39.000Z","dependencies_parsed_at":"2026-02-26T00:01:38.817Z","dependency_job_id":null,"html_url":"https://github.com/durable-workflow/workflow","commit_stats":{"total_commits":190,"total_committers":2,"mean_commits":95.0,"dds":0.08421052631578951,"last_synced_commit":"2b50d6a10d2a3af78470f0e39a3a8fd763c0228f"},"previous_names":["durable-workflow/workflow"],"tags_count":108,"template":false,"template_full_name":null,"purl":"pkg:github/durable-workflow/workflow","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/durable-workflow%2Fworkflow","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/durable-workflow%2Fworkflow/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/durable-workflow%2Fworkflow/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/durable-workflow%2Fworkflow/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/durable-workflow","download_url":"https://codeload.github.com/durable-workflow/workflow/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/durable-workflow%2Fworkflow/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30292476,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-09T11:12:22.024Z","status":"ssl_error","status_checked_at":"2026-03-09T11:10:54.577Z","response_time":61,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["background-jobs","bpm","bpmn","durable-functions","jobs","laravel","microservices","orchestration","php","queueing","status","workflow","workflow-engine","workflows"],"created_at":"2026-02-13T02:16:48.456Z","updated_at":"2026-03-09T11:33:21.371Z","avatar_url":"https://github.com/durable-workflow.png","language":"PHP","readme":"\u003cp align=\"center\"\u003e\u003ca href=\"https://github.com/durable-workflow/workflow/actions/workflows/php.yml\"\u003e\u003cimg src=\"https://img.shields.io/github/actions/workflow/status/durable-workflow/workflow/php.yml\" alt=\"GitHub Workflow Status\"\u003e\u003c/a\u003e \u003ca href=\"https://codecov.io/gh/durable-workflow/workflow\"\u003e\u003cimg alt=\"Codecov\" src=\"https://img.shields.io/codecov/c/github/durable-workflow/workflow\"\u003e\u003c/a\u003e \u003ca href=\"https://packagist.org/packages/laravel-workflow/laravel-workflow/stats\"\u003e\u003cimg alt=\"Packagist Downloads (custom server)\" src=\"https://img.shields.io/packagist/dt/laravel-workflow/laravel-workflow\"\u003e\u003c/a\u003e\n \u003ca href=\"https://durable-workflow.com/docs/installation\"\u003e\u003cimg src=\"https://img.shields.io/badge/docs-read%20now-brightgreen\" alt=\"Docs\"\u003e\u003c/a\u003e \u003ca href=\"https://github.com/durable-workflow/workflow/blob/master/LICENSE\"\u003e\u003cimg alt=\"Packagist License\" src=\"https://img.shields.io/packagist/l/laravel-workflow/laravel-workflow?color=bright-green\"\u003e\u003c/a\u003e\u003c/p\u003e\n\nDurable Workflow (formerly Laravel Workflow) is a package for the Laravel web framework that provides tools for defining and managing workflows and activities. A workflow is a series of interconnected activities that are executed in a specific order to achieve a desired result. Activities are individual tasks or pieces of logic that are executed as part of a workflow.\n\nDurable Workflow can be used to automate and manage complex processes, such as agentic workflows (AI-driven), financial transactions, data analysis, data pipelines, microservices, job tracking, user signup flows, sagas and other business processes. By using Durable Workflow, developers can break down large, complex processes into smaller, modular units that can be easily maintained and updated.\n\nSome key features and benefits of Durable Workflow include:\n\n- Support for defining workflows and activities using simple, declarative PHP classes.\n- Tools for starting, monitoring, and managing workflows, including support for queuing and parallel execution.\n- Built-in support for handling errors and retries, ensuring that workflows are executed reliably and consistently.\n- Integration with Laravel's queue and event systems, allowing workflows to be executed asynchronously on worker servers.\n- Extensive documentation and a growing community of developers who use and contribute to Durable Workflow.\n\n## Documentation\n\nDocumentation for Durable Workflow can be found on the [website](https://durable-workflow.com/docs/installation).\n\n## Community\n\nYou can find us in the [GitHub discussions](https://github.com/durable-workflow/workflow/discussions) and also on our [Discord channel](https://discord.gg/xu5aDDpqVy).\n\n## Sample App\n\nThere's also a [sample application](https://github.com/durable-workflow/sample-app) that you can run directly from GitHub in your browser.\n\n## Usage\n\n**1. Create a workflow**\n```php\nuse function Workflow\\activity;\nuse Workflow\\Workflow;\n\nclass MyWorkflow extends Workflow\n{\n    public function execute($name)\n    {\n        $result = yield activity(MyActivity::class, $name);\n\n        return $result;\n    }\n}\n```\n\n**2. Create an activity**\n```php\nuse Workflow\\Activity;\n\nclass MyActivity extends Activity\n{\n    public function execute($name)\n    {\n        return \"Hello, {$name}!\";\n    }\n}\n```\n\n**3. Run the workflow**\n```php\nuse Workflow\\WorkflowStub;\n\n$workflow = WorkflowStub::make(MyWorkflow::class);\n$workflow-\u003estart('world');\n```\n\n```php\n$workflow-\u003eoutput();\n=\u003e 'Hello, world!'\n```\n\n## Sponsors\n\nThe Durable Workflow package is sustained by the community via sponsors and volunteers.\n\n- \u003ca href=\"https://freispace.com\" target=\"_blank\" rel=\"noopener sponsored\"\u003eFreispace Resource Scheduling\u003c/a\u003e\n- \u003ca href=\"https://github.com/hnccox\" target=\"_blank\" rel=\"noopener sponsored\"\u003eHugo Cox\u003c/a\u003e\n\n## Monitoring\n\n[Waterline](https://github.com/durable-workflow/waterline) is a separate UI that works nicely alongside Horizon. Think of Waterline as being to workflows what Horizon is to queues.\n\n### Dashboard View\n\n![waterline_dashboard](https://github.com/user-attachments/assets/5688a234-4c02-4d5e-84d4-5f40b5fa27c5)\n\n### Workflow View\n\n![workflow](https://github.com/user-attachments/assets/da685466-7747-4c2f-ae10-300041381d51)\n\nRefer to https://github.com/durable-workflow/waterline for installation and configuration instructions.\n\n\u003csub\u003e\u003csup\u003e\"Laravel\" is a registered trademark of Taylor Otwell. This project is not affiliated, associated, endorsed, or sponsored by Taylor Otwell, nor has it been reviewed, tested, or certified by Taylor Otwell. The use of the trademark \"Laravel\" is for informational and descriptive purposes only. Durable Workflow is not officially related to the Laravel trademark or Taylor Otwell.\u003c/sup\u003e\u003c/sub\u003e\n","funding_links":["https://github.com/sponsors/durable-workflow"],"categories":["PHP"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdurable-workflow%2Fworkflow","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdurable-workflow%2Fworkflow","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdurable-workflow%2Fworkflow/lists"}