Перейти до основного вмісту
Версія: 2.0

Індекс можливостей Durable Workflow 2.0

Це індекс можливостей стабільної лінійки випусків Durable Workflow 2.0.

Підтримуваний канал встановлення​

Точні ідентифікатори артефактів визначають реєстри пакетів і метадані випусків, а не цей огляд можливостей.

ІнтерфейсПідтримуваний каналРоль в індексі
CLI2.0 stableМашиночитаний клієнт для операторів і діагностики.
PHP SDK2.0 stableОфіційний клієнт сервісного режиму durable-workflow/sdk і віддалений worker workflow/activity для runtime простору імен Cloud або самостійно розгорнутого Server.
Вбудований рушій Laravel2.0 stableОкремий режим durable-workflow/workflow усередині застосунку з власним середовищем написання workflow, рушієм збереження, чергами та replay.
Python SDK2.0 stableОфіційний SDK детермінованих workflow/activity сервісного режиму та клієнт операцій і площини керування для runtime простору імен Cloud або самостійно розгорнутого Server. Потрібен Python 3.10 або новіший.
Rust SDK2.0 stableОфіційний SDK детермінованих workflow/activity сервісного режиму, служба worker і клієнт площини керування для runtime простору імен Cloud або самостійно розгорнутого Server. Потрібен Rust 1.86 або новіший.
Server2.0 stableНезалежний від мови runtime, реалізований на PHP, для самостійного розгортання протоколів площини керування й worker v2.
Waterline2.0 stableCloud містить Managed Waterline. Оператори власного Server окремо розгортають образ служби для простору імен Server. Вбудований Laravel встановлює пакет Composer і читає стан застосунку в його процесі.

PHP, Python і Rust — три мови офіційних SDK сервісного режиму. Кожен може працювати з підготовленим runtime простору імен Durable Workflow Cloud або власним Server, якщо виявлення runtime повідомляє опубліковану можливість. Вони використовують стабільні рядкові назви типів, одну модель стійких команд та історії, версію площини керування 2, основну версію протоколу worker 1 і публічний конверт payload. Rust — повноцінний SDK workflow: він виконує детермінований код workflow, activity та служби worker, а не лише низькорівневі виклики протоколу. Python поєднує написання workflow з клієнтськими операціями просторів імен, розкладів, worker, черг, історії, відновлення та іншими операційними інтерфейсами.

Вбудований Laravel залишається окремим режимом PHP усередині застосунку. Він не потрібен клієнтам або worker сервісного режиму PHP. Незалежний від фреймворку PHP SDK має власні версії, окремі від вбудованого рушія Laravel.

Оберіть межу відповідальності за допомогою режимів розгортання, а потім перейдіть до керованого runtime Cloud або самостійно розгорнутого Server. Наведені нижче докази можливостей застосовуються лише там, де обраний runtime оголошує потрібний контракт.

Поточна мінімальна версія власного Server оголошує протокол worker 1.13. Python використовує заявлену базову версію 1.1, а Rust — 1.2 і потребує додаткового інтерфейсу завдань query 1.8 для query через replay. Можливість підключення клієнта визначає виявлення runtime, а не припущення за номером патча Server. Дивіться сумісність версій.

Можливості й мінімальні версії SDK​

«Сервісний режим» означає, що віддалений runtime належить Cloud або власному Server. «Вбудований» означає, що runtime працює в процесі Laravel-застосунку. Стовпець SDK явно фіксує відмінності. Порожнє або обмежене покриття SDK не означає паритету.

МожливістьПоточний контракт 2.0 і мінімальна офіційна підтримкаЯвні докази 2.0
WorkflowВіддалені worker PHP, Python і Rust виконують детерміновані workflow. Вбудований Laravel використовує пакет Workflow.Написання workflow, PHP SDK, Python SDK, Rust SDK
Activity та службиВбудований рушій і всі три SDK сервісного режиму підтримують написання activity. Workflow та activity Rust виконуються в офіційних службах worker. Python і PHP також мають офіційні клієнти керування/служб.Activity, PHP SDK, Виконання activity, Зовнішнє виконання
SignalСтійка асинхронна зміна доступна для workflow PHP, Python і Rust за поточних мінімальних версій.Signal, Python SDK, Rust SDK
QueryПідтримуються query лише для читання через replay. PHP, Python і Rust мають обробники/клієнти query. Завдання query Rust через replay потребують протоколу worker 1.8 або новішого.Query, Python SDK, Rust SDK
UpdatePHP, Python і Rust мають клієнтські інтерфейси update та обробники worker. Оголошені валідатори Python синхронно перевіряють update перед прийняттям, якщо виявлення Server оголошує саме цей контракт: прийняття йде після схвалення, а відхилення, втрата worker, тайм-аут і відсічене завершення явно завершуються помилкою. PHP і Rust не підтримують написання валідаторів і не оголошують їх.Update, Python SDK, Rust SDK
TimerСтійкі timer сервісного runtime відтворюються через replay у PHP, Python і Rust.Timer, Rust SDK
Повторні спробиСтійка політика повторних спроб activity записується разом із командою. PHP, Python і Rust мають параметри повторних спроб activity за поточних мінімальних версій.Помилки й відновлення, Python SDK, Rust SDK
Тайм-аутиСервісні runtime Cloud і власного Server забезпечують сімейства тайм-аутів activity та workflow. Rust містить параметри activity й дедлайни запуску для виконання/окремого run workflow.Тайм-аути, Rust SDK
Дочірні workflowPHP, Python і Rust запускають стійкі дочірні workflow та очікують їх. Ідентичність типу між мовами є стабільним рядком, а payload дочірнього workflow використовує спільний конверт.Дочірні workflow, Python SDK
Детермінована паралельна композиціяPHP all()/parallel(), вкладений list-yield Python і Rust WorkflowContext::parallel()/join() планують activity, дочірні workflow, timer, змішані та вкладені групи через звичайні команди. Усі три публікують спільні метадані ідентичності/шляху групи й відновлюють результати у вкладеному порядку входу.Конкурентність, Python SDK, Rust SDK
Стійкий вибір першого завершенняВбудований PHP та сервісні SDK PHP, Python і Rust запускають незалежні activity, дочірні workflow, timer, очікування зовнішнього входу й учасників вкладених груп. Один переможець зберігається зі стабільною ідентичністю учасника. Інші продовжують роботу та зберігають дескриптори очікування/скасування.Конкурентність, Python SDK, Rust SDK
Компенсація sagaПомічники Saga PHP, Python WorkflowContext.saga() і Rust WorkflowContext::saga() реєструють стійкі компенсації після успіху прямої дії та за замовчуванням виконують їх послідовно у зворотному порядку. Python і Rust зупиняються після першої помилки компенсації та зберігають початкову помилку разом із помилками компенсації. PHP додатково має політики паралельного виконання й продовження після помилки за явним увімкненням.Saga, Python SDK, Rust SDK
СкасуванняВбудований Laravel та сервісні PHP, Python і Rust підтримують запити кооперативного скасування з однією кореневою ідентичністю, незмінним дедлайном і обмеженим часом очищення на явно увімкнених worker. Негайне термінальне скасування залишається доступним із безпечним вибором run і типізованими результатами.Скасування й припинення, Скасування в сервісному режимі, Rust SDK
ПрипиненняПрипинення негайно закриває run з окремим термінальним результатом. Воно доступне в сервісних runtime Cloud і власного Server, CLI, інтерфейсах керування PHP, Python і Rust.Скасування й припинення, Server API
Side effectPHP, Python і Rust записують недетерміновані значення рівно один раз і декодують записане значення під час replay.Side effect, Python SDK, Rust SDK
Workflow StreamsPHP, Python і Rust мають типізовані операції списку, опису, підписки/відновлення зі зміщення, додавання, закриття й помилки для вихідних потоків окремого run, якими володіє Server. Усі три підтримують безпечні для replay emits зі стійкої ідентичності команди. Python розв’язує зовнішні payload через налаштований драйвер сховища. PHP і Rust зберігають непрозорі посилання.Workflow Streams, точна матриця SDK, сценарії runtime
Маркери версійPHP, Python і Rust мають стійкі маркери версій для сумісної еволюції коду.Версіонування, Python SDK, Rust SDK
Детермінований replayWorker workflow PHP, Python і Rust відновлюють рішення зі стійкої історії та повідомляють типізовану недетермінованість замість повторного виконання зовнішньої роботи.Гарантії виконання, Відповідність платформи, Rust SDK
РозкладиСервісні runtime Cloud і власного Server володіють стійкими розкладами. PHP, Python і CLI мають операції розкладів. Rust не заявляє API керування розкладами.Розклади, Довідник CLI, Python SDK
Простори іменСервісні runtime обмежені простором імен. Клієнти PHP/Python і CLI керують просторами імен там, де обраний runtime має цю операцію. Worker/клієнти Rust працюють із простором імен, але не заявляють його адміністрування за поточної мінімальної версії.Простори імен, автентифікація та worker, Server API
Пошукові атрибутиСервісні runtime Cloud і власного Server індексують типізовані пошукові атрибути. PHP і Python мають інтерфейси написання/керування. CLI й API оператора мають структуроване виявлення та фільтрування.Пошукові атрибути, Python SDK
Сумісність workerSDK реєструють runtime, версію SDK, build ID, підтримувані типи, версію протоколу й місткість. Server публікує прийняті версії та факти маршрутизації.Сумісність, Сумісність і маршрутизація worker
Локальні activityДоступні у вбудованому Laravel, сервісних SDK PHP і Python та Rust SDK 3.1.0 за явного увімкнення worker.Вбудоване виконання activity, Матриця підтримки сервісного режиму
Сеанси workerДоступні у вбудованому Laravel, сервісних SDK PHP та Python і Rust SDK 3.2.0 за явного увімкнення worker.Сеанси worker, Матриця підтримки сервісного режиму
Sticky executionДоступне у вбудованому Laravel і сервісному PHP SDK. Python і Rust не підтримуються.Sticky execution, Матриця підтримки сервісного режиму
Сумісність кодеківPHP, Python і Rust використовують публічний конверт codec + blob і одну фіксовану рекурсивну схему Avro Value. Іменовані гілки зберігають відмінності цілих чисел і double, тексту й bytes, boolean і цілих чисел, списків і мап.Протокол Avro Value, Протокол worker, Rust SDK
ДіагностикаСервісні runtime та CLI публікують факти версій, протоколів, worker, черг завдань, replay, історії, типізованих помилок і відновлення як JSON. Managed Waterline, окрема власна служба або вбудований пакет показують докази з runtime, що ними володіє.Моніторинг, Довідник CLI, API оператора Waterline
Інструменти агентівВиявити -> Змінити -> Виконати -> Діагностувати -> Відновити доступно через публічні маніфести, схеми, HTTP-операції, JSON CLI, клієнти SDK, типізовану історію/діагностику та безпечні зміни. MCP — один необов’язковий інтерфейс, а не визначення цього контракту.Контракт інструментів агентів, Операційний цикл агента

Межа сумісності payload​

Міжмовні виклики workflow та activity не передають серіалізовані об’єкти PHP, pickle Python або типи реалізації Rust. Вони передають зареєстровані рядкові назви типів і публічний конверт payload. З avro кожен офіційний SDK використовує офіційну реалізацію своєї мови й ту саму фіксовану схему Value. Декодовані мапи, списки, рядки, bytes, цілі числа, double, boolean та null зберігають свої примітивні типи. Мовний клас відновлюється лише в SDK, якому він належить.

Цей контракт діє для входу й результату workflow, дочірніх workflow, входу й результату activity, signal, query, update та зовнішнього виконання. Перед допуском worker розгортання все одно має перевірити кодеки, оголошені GET /api/cluster/info.

Межа випуску й зрілості​

Наведені тут контракти платформи є стабільним публічним інтерфейсом продукту 2.0. Для стислого рішення про відповідність задачі скористайтеся оцінюванням для AI-агентів.