Vercel Blob consistent reads: свежесть, конкуренция и кэш — разные задачи

Tech
Просмотры 3

Private get() и presignUrl() поддерживают useCache: false для обхода CDN. После overwrite одного pathname обычное чтение может до 60 секунд возвращать старую версию.

Vercel Blob consistent reads: свежесть, конкуренция и кэш — разные задачи
useCache: false читает последнее обновление private Blob. Практика для памяти агентов, ETag, авторизации и browser cache.

Что изменилось

Private get() и presignUrl() поддерживают useCache: false для обхода CDN. После overwrite одного pathname обычное чтение может до 60 секунд возвращать старую версию.

Свежесть не равна concurrency

Опция решает только read-after-write. Нескольким writers нужны ETag и ifMatch, чтобы конфликт завершался BlobPreconditionFailedError, а не потерей изменений.

Auth и delivery cache

Проверяйте доступ в route handler рядом с get(). Vercel рекомендует private, no-cache для браузера и no-store для особо чувствительных данных.

Операционная модель

Разделите объекты на immutable asset, mutable state и derived snapshot. Origin read нужен памяти агента, checkpoint и немедленной проверке.

Риски

Обход CDN повышает latency и Fast Origin Transfer. При транзакциях и множестве writers Postgres может быть проще.

Чек-лист

Найти allowOverwrite

Проверить @vercel/blob ≥ 2.6.1

Тестировать ETag-конфликты

Следить за origin reads

Источники

다른 글