← 开源
durable-workflow

workflow

Core package for defining and running durable workflows and activities. Supports long-running persistent workflows, retries, queues, parallel execution, workflow monitoring, dedicated storage connections, and orchestration for microservices, data pipelines, sagas, agentic workflows, and other complex business processes.

InfrastructureOrchestrationObservabilityPHP
在 GitHub 打开
增长势头
+124 小时新增 Star+0.1%
1.25k
Star
85
Fork
+2
本周
21
贡献者
创建于 2022-02-25 · 更新于 2026-10-16 · 今日第 5691 名
主要开发者

durable-workflow/workflow 排名第 5,691,有 1,251 个星标。

同类别比较

durable-workflow/workflow 排名第 5,691,此处有 8 个同类条目;thu-ml/SpargeAttn 排名第 5,682。

同类别比较
名称排名指标
MoonshotAI/FlashKDA5,664
语言:
Cuda
星标数:
1,282
分叉数:
126
简介:
FlashKDA: high-performance Kimi Delta Attention kernels
menloresearch/asimov-15,665
语言:
Python
星标数:
1,282
分叉数:
219
简介:
v1 of Asimov, an open-source humanoid robot
ModelCloud/GPTQModel5,669
语言:
Python
星标数:
1,274
分叉数:
211
简介:
LLM model quantization (compression) toolkit with HW acceleration support for Nvidia, AMD, Intel GPU and Intel/AMD/Apple CPU via HF, vLLM, and SGLang.
thu-ml/SpargeAttn5,682
语言:
Cuda
星标数:
1,262
分叉数:
110
简介:
[ICML2025] SpargeAttention: A training-free sparse attention that accelerates any model inference.
qualcomm/ai-hub-models5,719
语言:
Python
星标数:
1,228
分叉数:
214
简介:
Qualcomm® AI Hub Models is our collection of state-of-the-art machine learning models optimized for performance (latency, memory etc.) and ready to deploy on Qualcomm® devices.
temporalio/sdk-python5,726
语言:
Python
星标数:
1,224
分叉数:
267
简介:
Temporal Python SDK
Mentra-Community/OpenSourceSmartGlasses5,728
语言:
HTML
星标数:
1,223
分叉数:
148
简介:
Open Source smart glasses designed to be 1. All day wearable 2. Immediately useful 3. Extendable for makers, startups, and everyone else.
Zefan-Cai/R-KV5,735
语言:
Python
星标数:
1,216
分叉数:
196
简介:
[Neurips 2025] R-KV: Redundancy-aware KV Cache Compression for Reasoning Models
关键参数与规格
关键参数与规格
参数值
语言PHP
类别Infrastructure
子类别Orchestration,Observability
关键词Agent-ready APIs, Automation, Databases, DevOps
星标数1,251
分叉数85
贡献者21
创建日期2022-02-25
更新日期2026-10-16
1 天星标数1
7 天星标数2
排名5,691
上次排名10,926
排名变化5,235
7 天星标排名8,138
上次 7 天星标排名7,031
7 天星标排名变化-1,107
总星标排名9,369
上次总星标排名9,363
总星标排名变化-6
README 摘录

Durable Workflow for Laravel Durable Workflow is the embedded Laravel runtime for durable execution. Write long-running workflows as ordinary PHP, keep completed work recorded through worker restarts and application deploys, and use Laravel's queues, cache, and database as the runtime. This package also provides the orchestration engine hosted by Durable Workflow Server. Use the PHP SDK with Server or Durable Workflow Cloud when workers need to run outside the Laravel application or across PHP, Python, and Rust. Install For

a new v2-only application, set before the first migration. This omits the legacy v1 tables and queue watchdog. Existing applications keep v1 enabled by default so they can drain older work; do not disable it until that work is retired. Changing this setting does not drop existing tables. Run a Laravel queue worker or Horizon to execute workflows and activities: For the default database queue on SQLite, failed reservation writes preserve unclaimed work after a proven rollback. See SQLite

queue reservations for the supported framework versions and custom-connector boundary. Your First Workflow Workflow code can coordinate activities, timers, signals, queries, updates, child workflows, sagas, cancellation, retries, parallel work, side effects, continue-as-new, search attributes, memo, and message streams. The runtime persists execution history so replay can resume after process or host failure without repeating completed activities. Schedule a Workflow Run from Laravel's scheduler to start due occurrences. Both scheduled occurrences and use these limits. The execution timeout

covers one logical execution across retries and continue-as-new. The run timeout limits each individual run and resets on continue-as-new. Each occurrence starts a new execution budget. Omit either option, or pass , to leave that limit unset. See schedule timeout configuration for the action format, validation and updates. | Your application owns persistence and queue execution. | | Self-hosted Server | Workers run independently or in multiple languages. | Your team operates Server, MySQL, Redis, and optional Waterline. | | Durable Workflow Cloud

| You want a managed runtime for PHP, Python, and Rust workers. | Durable Workflow operates the runtime and persistence. | Embedded runs remain owned by the Laravel application. Moving new work to Server or Cloud does not reinterpret existing embedded history. Learn More Embedded installation Embedded feature guides Configuration reference Deployment modes Monitoring with Waterline Runnable Sample App Questions and design discussions are welcome in GitHub Discussions and Discord. Sponsors Durable Workflow is sustained by contributors and sponsors: Freispace Resource Scheduling Translate

a Book

常见问题

记录了多少星标和分叉?

durable-workflow/workflow 有 1,251 个星标和 85 个分叉。

仓库排名是多少?

durable-workflow/workflow 排名第 5,691。

记录的语言和类别是什么?

durable-workflow/workflow 有 1,251 个星标,语言为 PHP,类别为 Infrastructure。

哪个仓库排名最接近?

durable-workflow/workflow 与 thu-ml/SpargeAttn 比较,后者排名第 5,682,有 1,262 个星标。

README

Durable Workflow for Laravel

Durable Workflow is the embedded Laravel runtime for durable execution. Write long-running workflows as ordinary PHP, keep completed work recorded through worker restarts and application deploys, and use Laravel's queues, cache, and database as the runtime.

This package also provides the orchestration engine hosted by Durable Workflow Server. Use the PHP SDK with Server or Durable Workflow Cloud when workers need to run outside the Laravel application or across PHP, Python, and Rust.

Install

composer require durable-workflow/workflow:^2.0
php artisan migrate

For a new v2-only application, set DW_V1_ENABLED=false before the first migration. This omits the legacy v1 tables and queue watchdog. Existing applications keep v1 enabled by default so they can drain older work; do not disable it until that work is retired. Changing this setting does not drop existing tables.

Run a Laravel queue worker or Horizon to execute workflows and activities:

php artisan queue:work

For the default database queue on SQLite, failed reservation writes preserve unclaimed work after a proven rollback. See SQLite queue reservations for the supported framework versions and custom-connector boundary.

Your First Workflow

<?php

use Workflow\V2\Activity;
use Workflow\V2\Workflow;
use Workflow\V2\WorkflowStub;
use function Workflow\V2\activity;

final class GreetActivity extends Activity
{
    public function handle(string $name): string
    {
        return "Hello, {$name}!";
    }
}

final class GreetWorkflow extends Workflow
{
    public function handle(string $name): string
    {
        return activity(GreetActivity::class, $name);
    }
}

$workflow = WorkflowStub::make(GreetWorkflow::class);
$workflow->start('world');

echo $workflow->output(); // Hello, world!

Workflow code can coordinate activities, timers, signals, queries, updates, child workflows, sagas, cancellation, retries, parallel work, side effects, continue-as-new, search attributes, memo, and message streams. The runtime persists execution history so replay can resume after process or host failure without repeating completed activities.

Schedule a Workflow

use Workflow\V2\Support\ScheduleManager;

$schedule = ScheduleManager::create(
    scheduleId: 'daily-greeting',
    workflowClass: GreetWorkflow::class,
    cronExpression: '0 9 * * *',
    arguments: ['world'],
    executionTimeoutSeconds: 120,
    runTimeoutSeconds: 60,
);

Run php artisan workflow:v2:schedule-tick from Laravel's scheduler to start due occurrences. Both scheduled occurrences and ScheduleManager::trigger() use these limits. The execution timeout covers one logical execution across retries and continue-as-new. The run timeout limits each individual run and resets on continue-as-new. Each occurrence starts a new execution budget. Omit either option, or pass null, to leave that limit unset.

See schedule timeout configuration for the action format, validation and updates.

Choose a Deployment

Deployment Use it when Runtime owner
Embedded Laravel Workflows and activities live inside one Laravel application. Your application owns persistence and queue execution.
Self-hosted Server Workers run independently or in multiple languages. Your team operates Server, MySQL, Redis, and optional Waterline.
Durable Workflow Cloud You want a managed runtime for PHP, Python, and Rust workers. Durable Workflow operates the runtime and persistence.

Embedded runs remain owned by the Laravel application. Moving new work to Server or Cloud does not reinterpret existing embedded history.

Learn More

Questions and design discussions are welcome in GitHub Discussions and Discord.

Sponsors

Durable Workflow is sustained by contributors and sponsors:

排名相邻
同类项目