Cloudflare Turns CI Pipelines into TypeScript Workflows

InfoQ · 2026.08.20

Cloudflare의 TypeScript CI SDK가 보여주는 내구성 워크플로우 설계

Cloudflare가 cloudflare/ci라는 TypeScript 기반 CI SDK를 공개했다. 이 SDK는 Cloudflare Workflows 위에서 파이프라인을 정의하며, 각 스텝마다 내구성 있는 재시도(durable retry)와 재실행(replay) 기능을 기본으로 제공한다. 현재 Workers 런타임을 타겟으로 하고, Artifacts 기능은 아직 프라이빗 베타 상태이기 때문에 즉시 CI 툴로 전환하기에는 제약이 있다. 그러나 이 프로젝트가 백엔드 개발자에게 진짜 흥미로운 이유는 CI 도구 자체보다 그 설계 철학에 있다.

스텝 단위 내구성 모델이란 무엇인가

기존 CI 파이프라인은 실패 시 전체 파이프라인을 처음부터 재시작하거나, 직접 재시도 로직을 구성해야 했다. cloudflare/ci는 이 문제를 스텝 단위 내구성 모델(durable-step model) 로 해결한다. 각 스텝의 실행 결과가 저장되고, 실패 시 해당 스텝부터만 재실행할 수 있다. 이는 Cloudflare Workflows의 이벤트 소싱 방식 실행 히스토리 관리와 결합되어, 중단된 지점부터 재개(replay)하는 구조로 동작한다.

병렬 실행 역시 기본값으로 제공된다. 아래처럼 스텝들을 선언하면 별도 설정 없이 동시에 실행된다.

const [lintResult, testResult] = await Promise.all([
  step.run("lint", () => runLint()),
  step.run("test", () => runTests()),
]);

여기서 step.run()으로 감싸는 패턴이 핵심이다. 각 실행 단위를 명시적으로 선언하면 런타임이 내구성 보장과 상태 추적을 자동으로 처리한다.

분산 워크플로우 설계에 주는 시사점

백엔드 개발자 입장에서 이 패턴은 CI를 넘어 비동기 분산 워크플로우 전반에 적용 가능한 아키텍처 참조점이 된다. 주문 처리, 정산 배치, 멀티스텝 데이터 파이프라인 같은 시나리오에서 우리가 흔히 마주치는 문제들—중간 실패 후 전체 재처리, 멱등성 보장, 병렬 처리 조율—을 이 모델은 구조적으로 해결한다.

Java 생태계에서는 Temporal이나 AWS Step Functions가 유사한 내구성 워크플로우 개념을 제공한다. 공통 원칙은 다음과 같다.

  • 스텝 경계를 명시적으로 정의해 상태를 저장 가능한 단위로 분리
  • 재시도와 멱등성을 스텝 수준에서 보장, 비즈니스 로직에서 분리
  • 병렬 실행을 선언적으로 표현해 오케스트레이션 복잡도를 낮춤
  • Sandbox 스냅샷 캐싱처럼, 반복 실행 비용을 줄이는 상태 캐싱 전략 도입

정리

  • cloudflare/ci의 핵심 가치는 CI 도구 자체보다 스텝 단위 내구성 모델이라는 아키텍처 패턴에 있다.
  • 각 실행 단위를 명시적으로 선언하고 상태를 저장함으로써, 실패 복구·재시도·병렬 실행을 구조적으로 해결한다.
  • 분산 워크플로우를 설계하는 Java 백엔드 개발자라면 Temporal 등 유사 도구와 함께 이 설계 철학을 참고할 만하다.
Source
InfoQ
원문 보기 →
← 목록으로 돌아가기