Vercel、新インフラ不要のワークフローSDK公開
詳細を読む
Vercelは8月27日、TypeScriptコードのまま耐障害性のあるワークフローを構築できるオープンソースライブラリ「Workflow SDK」を公開したと発表しました。既存のワークフローエンジンが専用サーバーやワーカー管理など複雑なインフラを要求していた課題を解消し、新たなインフラを追加せずに長時間実行の処理を安全に扱えるようにしています。
同氏はVercel入社前、Temporalのフォークを半年ほど個人開発していましたが、快適な開発体験を実現するには実行環境そのものを自社で持つ必要があると気づいたといいます。Temporalは強力な一方、サーバー群の構築やワーカーの常時稼働、暗号化通信の設定など、動かすまでに多くの準備が必要でした。バージョンが異なるコードが実行中のワークフローと衝突する問題も、運用を難しくしていたと振り返ります。
Workflow SDKでは、関数の先頭に"use workflow"や"use step"と書くだけで、通常のTypeScript関数がそのまま耐障害性のある処理単位になります。コンパイラがコードを解析し、ワークフロー用とステップ用のバンドルに自動で分割する仕組みです。信号・照会・更新という3つの仕組みに分かれていた既存の入出力手段も、"hook"という単一の概念に統合し、Webhookの生成すらも1行で完結できるようにしました。
バックエンドは特定の技術に縛られず、Postgres、Redis、Vercel Queuesなど、既に利用しているインフラをそのまま流用できる設計です。Vercel自身が提供するワークフローサーバーも、状態を持たないただのCRUD APIにすぎず、処理の実体はオープンソースのクライアントライブラリ側にあります。同社はこの仕組みをApacheライセンスで公開し、誰でも中身を確認し拡張できるようにしたとしています。
パフォーマンス面では、ベータ版のWorkflow v5が既存APIを変更せずに最大5倍の高速化を実現したとしています。次期のv6ではサードパーティのバックエンドでも同等の速度を目指すとしており、開発は今後もGitHub上の議論を通じて公開で進める方針です。npmから"workflow@beta"を導入すれば、現時点でも試用できる状態にあるといいます。