Перейти к основному содержимому

Stateless-инвариант

Файловая система runtime-контейнера в Layero эфемерна. Это продуктовая граница платформы, а не временный технический долг — те же ограничения у Vercel / Netlify / Cloudflare Workers.

Что значит «эфемерна»

  • При cold start контейнер поднимается из чистого образа. Всё, что предыдущий инстанс записал в локальную FS, пропадает.
  • При scale-up платформа поднимает несколько pod'ов параллельно. У каждого своя локальная FS, общего состояния нет, межпроцессный file-locking не работает.
  • Запись на диск возможна только в /tmp (≤ 512 MB). Содержимое /tmp сбрасывается между запросами.

Что НЕ работает

  • SQLite с записью — БД переживёт только время жизни инстанса.
  • node-persist, lowdb, nedb и любые «файловые БД».
  • Файловые сессииexpress-session с FileStore, файловые сессии в Flask, Streamlit с локальным ~/.streamlit/session.json и т. п.
  • Запись пользовательских загрузок на диск — файл пропадёт при следующем запросе.
  • In-process кеш между запросами для multi-pod деплоев — каждый pod не видит кеш остальных.

Что РАБОТАЕТ

  • Read-only SQLite с контентом, зашитым в образ.
  • In-process кеш в рамках одного pod'а — пока pod жив, кеш живёт.
  • Временные файлы в /tmp в пределах одного запроса.

Как делать правильно

ЗадачаРешение
Persistent данныеВнешний managed Postgres (например, YC Managed PostgreSQL).
КешВнешний Redis (YC Managed Redis).
Загруженные файлыВнешний S3-совместимый сторадж (Yandex Object Storage).
СессииJWT в cookie или Redis-store.

Если ваше приложение обязано иметь локальный диск — вероятно, Layero вам не подойдёт. Платформа не предоставляет persistent volumes ни сейчас, ни в плане.