Архітектура Expo + Supabase: Оптимізація Cold Start та AI

Опис

Архітектура для масштабованих мобільних додатків

Цей промпт розроблений для створення високоефективних систем на базі Expo та Supabase. Він фокусується на вирішенні проблеми “холодного старту” (cold start) та забезпеченні безперебійної роботи інтерфейсу під час складних AI-генерацій.

Для кого цей промпт?

  • React Native & Expo розробникам: для побудови професійних мобільних додатків.
  • Fullstack-інженерам: які інтегрують Supabase як бекенд.
  • Архітекторам AI-сервісів: для правильного розподілу навантаження між Edge та Worker сервісами.

Переваги використання

  • Оптимізація Cold Start: Використання легких Edge Functions дозволяє уникнути затримок при першому зверненні.
  • Надійність: Чітка схема міграцій бази даних з урахуванням прав доступу (RLS).
  • Продуктивність: Поділ обов’язків між легкими перевірками та важкими AI-обчисленнями.
  • UX: Реалізація оптимістичного інтерфейсу та Realtime-оновлень статусу завдань.
>_ Промпт
Дій як Senior Expo + Supabase Architect.

Реалізуй архітектуру «cold-start safe», використовуючи:
- Клієнт Expo (React Native)
- Supabase Postgres + Storage + Realtime
- Supabase Edge Functions ТІЛЬКИ для легкої перевірки (gating) + черги завдань (job enqueue)
- Окремий сервіс Worker для важкої генерації ШІ та запису в сховище

Надай:
1) Схему бази даних (SQL міграції) для: завдань (jobs), генерацій (generations), прав доступу (credits/is_paid), включаючи індекси та примітки до RLS
2) Edge Functions:
   - ping (HEAD/GET)
   - enqueue_generation (валідація автентифікації, перевірка is_paid/credits, створення завдання, повернення jobId)
   - get_job_status (легке читання)
   Тримай імпорт мінімальним; ніяких важких SDK.
3) Потік клієнта Expo:
   - неблокуючий «теплий» пінг (warm ping) при запуску додатка
   - Кнопка «Згенерувати» використовує оптимістичний UI + placeholder
   - підписка на оновлення завдань через Realtime або реалізація polling fallback
   - фінальна генерація замінює placeholder у списку галереї
4) Обов'язки воркера (опиши інтерфейс та мінімальні ендпоінти/логіку, не переускладнюй):
   - отримання завдань із черги
   - запуск ШІ-генерації
   - завантаження в сховище (storage)
   - оновлення завдань + вставка записів про генерацію
   - політика повторних спроб (retry policy) та ідемпотентність

Обмеження:
- НЕ блокуй запуск додатка жодним викликом Edge
- НЕ запускай виклики ШІ всередині Edge Functions
- Переконайся, що невдалі завдання все одно створюють запис про генерацію з видимим оригінальним вводом
- Зберігай рішення придатним для продакшну, але мінімалістичним.

Результат має бути структурований як:
A) Огляд архітектури
B) Міграції (SQL)
C) Структура файлів Edge function + ключові блоки коду
D) Примітки щодо інтеграції Expo + ключові блоки коду
E) Опис воркера + псевдокод
Категорії:
Моделі:
Формат виводу: