Vercel Blob 이 프라이빗 스토리지에서 쓰기 직후 읽기 일관성(read-after-write consistency)을 보장하는 `useCache: false` 옵션을 지원한다. 기존에는 CDN 캐시 때문에 기존 경로를 덮어쓴 Blob 이 최대 60초간 구버전으로 반환될 수 있었는데, 이 옵션으로 캐시를 완전히 우회해 오리진에서 직접 읽을 수 있게 됐다.
핵심 포인트- 새 경로(fresh pathname)에 쓴 Blob 은 캐시 항목이 없어 옵션 없이도 즉시 최신 데이터가 반환된다.
- 기존 경로를 덮어쓴 경우 CDN 캐시로 인해 최대 60초간 이전 버전이 노출될 수 있다.
- TypeScript SDK(`@vercel/blob@2.6.1`)에서 `useCache: false` 옵션, curl/직접 API 호출에서는 `cache=0` 쿼리 파라미터로 캐시를 우회한다.
- 캐시 우회 읽기는 Fast Origin Transfer 로 처리되어 추가 비용이 발생한다.
- AI 에이전트 메모리 파일, 세션 기록, 스케줄드 리포트 등 일관성이 중요한 시나리오에 적합하다.
상세 정리- 기존 동작: Vercel Blob 프라이빗 스토리지는 CDN 캐싱을 기본 적용해 읽기 성능을 높이지만, Blob 을 덮어쓸 경우 최대 60초간 구버전이 반환되는 일관성 문제가 있었다.
- 새 기능: SDK `2.6.1` 이상에서 읽기 함수에 `{ useCache: false }` 옵션 추가 — 오리진에서 직접 읽어 캐시를 완전 우회한다.
- TypeScript 예제: `const blob = await head(url, { useCache: false });` 형태로 사용한다.
- curl/API 직접 호출: URL 에 `?cache=0` 쿼리 파라미터를 추가하면 HTTP 클라이언트에서도 동일한 효과를 낼 수 있다.
- 신규 경로 vs 덮어쓰기: 완전히 새 경로는 캐시 항목이 없어 자동으로 일관된 읽기가 가능하고, 기존 경로를 덮어쓸 때만 옵션이 필요하다.
- 비용: 캐시 우회는 Fast Origin Transfer 로 처리되어 일반 캐시 읽기보다 비용이 높다 — 일관성이 반드시 필요한 경우에만 사용을 권장한다.
- 활용 시나리오: AI 에이전트가 갱신하는 메모리/컨텍스트 파일, 사용자 세션 기록, 크론 작업이 덮어쓰는 리포트 등 쓰기 직후 정확한 데이터 조회가 필요한 케이스에 적합하다.
왜 읽나Vercel Blob 으로 상태 저장이나 파일 공유를 구현하는 개발자가 읽기 일관성 보장 방법과 비용 트레이드오프를 파악하는 데 유용하다.