~/VibeHandbook
$39

Cloudflare

developers.cloudflare.com

Queues

무엇인가

Cloudflare Queues는 Workers를 위한 관리형 메시지 큐다. 한 Worker(생산자)가 큐에 메시지를 밀어 넣고, 다른 Worker(소비자)가 그 메시지들의 배치(batch)와 함께 호출되어 처리한다. 이를 통해 느리거나 불안정한 작업을 그 작업을 촉발한 요청으로부터 분리할 수 있다 — 요청은 빠르게 받아들이고, 작업은 백그라운드에서 한다.

강점

  • 생산자와 소비자를 분리해 트래픽 급증을 평탄하게 한다.
  • 자동 배칭, 재시도, 그리고 실패에 대한 데드레터 큐(dead-letter queue).
  • 순수 Workers 통합 — 생산자와 소비자 모두 바인딩을 가진 Worker다.
  • 운영할 인프라가 없으며, 트래픽에 따라 확장된다.
  • 최소 1회 전달(at-least-once)을 보장하여 메시지가 조용히 사라지지 않는다.

트레이드오프

  • 최소 1회 전달이므로 소비자는 멱등(idempotent)해야 한다(중복을 처리해야 한다).
  • 즉각적인 동기 응답에는 적합하지 않다 — 작업은 비동기로 일어난다.
  • 순서는 최선 노력(best-effort)이며 엄격한 전역 순서가 아니다.
  • 처리량과 메시지 크기에 한도가 있어 이를 고려해 설계해야 한다.

언제 쓰나

백그라운드 작업에 Queues를 써라: 이메일 발송, 업로드 처리, 느린 서드파티 API 호출, 웹훅 팬아웃, 쓰기 버퍼링 — 사용자를 기다리게 하고 싶지 않은 모든 것.

바이브 코딩 적합성

Queues는 에이전트가 브로커를 세우지 않고 백그라운드 처리를 추가하는 깔끔한 방법이다. 소비자를 멱등하게(메시지 키를 사용해) 만들고, 실패가 보이도록 데드레터 큐를 설정하도록 요청하라. 아래 설정은 하나의 Worker를 큐의 생산자이자 소비자로 연결한다.

# wrangler.toml
[[queues.producers]]
queue = "jobs"
binding = "JOBS"

[[queues.consumers]]
queue = "jobs"
max_batch_size = 10
dead_letter_queue = "jobs-dlq"
npx wrangler queues create jobs
npx wrangler deploy