워크플로 실행을 코드처럼 다루는 새 SDK
워크플로를 별도 DAG가 아닌 일반 코드로 작성하게 하는 Workflow SDK를 공개했다.
교안에 영향
기존 안내 글에서 signals, queries, updates를 별도 개념으로 설명한 내용은 이제 Hooks 중심 설명으로 바뀌어 맞지 않음.
요약
- Workflow SDK를 공개해 워크플로를 일반 코드처럼 작성하고, "use workflow"와 "use step"으로 구분하는 방식을 도입했다. - createWebhook, createHook으로 Ad-hoc webhook과 Hooks를 제공해 신호, 쿼리, 업데이트를 하나의 개념으로 단순화했다. - 불완전한 실행 중 버전 관리 문제를 배포 고정 방식으로 해결하고, 실행 중인 워크플로가 변경된 코드에 깨지지 않도록 했다. - Vercel Workflow Server와 Postgres world를 포함한 여러 World 구현을 통해 백엔드와 인프라를 교체 가능하게 했다. - Workflow v5의 성능 개선과 Workflow v6, npm install workflow@beta 테스트 안내를 덧붙였다.
바뀐 것
새 기능
- Workflow SDK를 공개해 워크플로를 일반 코드처럼 작성할 수 있게 했다.
- "use workflow"와 "use step" 지시어로 오케스트레이터와 단계 작업을 나눈다.
- createWebhook()으로 실행 중인 워크플로 안에 호출 가능한 URL을 만든다.
- createHook()으로 Hooks를 만들고, 신호·쿼리·업데이트를 하나의 개념으로 대체한다.
- Vercel Workflow Server를 World 구현으로 제공해 인증과 멀티테넌시를 지원한다.
- Postgres world를 제공해 저장, 큐잉, 스트리밍을 Postgres 기반으로 처리한다.
- Redis, Kafka, SQS, Cloudflare Queues, Durable Objects 등과 연결할 수 있는 백엔드 교체 구조를 제공한다.
개선
- 실행 중인 워크플로를 시작한 배포에 고정해 코드 변경으로 인한 비결정성 오류를 피한다.
- Workflow v5에서 성능을 최대 5배까지 개선하고, v6에서 추가 개선과 서드파티 world 성능 향상을 예고했다.
기타
- npm install workflow@beta로 베타 버전을 시험할 수 있게 했다.