Альтернатива Supabase Edge Functions: контейнеры вместо Deno-изолятов
Supabase Edge Functions работают на Deno V8-изолятах без нативных Node.js-модулей. Inquir запускает функции в изолированных контейнерах на Node.js 22, Python 3.12 и Go 1.22 с поддержкой нативных зависимостей через слои.
Last updated: 2026-04-20
Answer first
Direct answer
Альтернатива Supabase Edge Functions: контейнеры вместо Deno-изолятов. Изолированные контейнеры поддерживают любые нативные зависимости через слои. Node.js 22, Python 3.12 и Go 1.22 в одном рабочем пространстве с общим шлюзом и историей вызовов.
When it fits
- Нужны нативные Node.js-пакеты или Python/Go рантайм
- Важны cron и пайплайны рядом с HTTP-API в одном рабочем пространстве
- You want a backend runtime that works without coupling to a Supabase Postgres project
Tradeoffs
- Если весь стек уже на Supabase и функции только вызывают базу через supabase-js — Edge Functions дают низкую задержку рядом с данными.
- Глобальная дистрибуция Deno edge важна, когда латентность к пользователям критична и нативные пакеты не нужны.
Нагрузка и где ломается
Когда Supabase Edge Functions ограничивают
- V8 isolates: no native Node.js modules, no npm packages requiring native bindings
- No built-in cron scheduling—Edge Functions are invoked, not scheduled
- Background jobs require external queuing (pg_cron, external workers)
- Deno runtime means TypeScript-first—Node.js or Python or Go codebases need rewriting
Edge Functions на Deno не поддерживают нативные Node.js-пакеты. Если нужны sharp, puppeteer, pg, numpy или другие пакеты с нативными расширениями — edge-модель не подходит.
Компромиссы вендоров
Когда Supabase Edge Functions лучше
Если весь стек уже на Supabase и функции только вызывают базу через supabase-js — Edge Functions дают низкую задержку рядом с данными.
Глобальная дистрибуция Deno edge важна, когда латентность к пользователям критична и нативные пакеты не нужны.
Как помогает Inquir
Что даёт Inquir вместо Edge Functions
Изолированные контейнеры поддерживают любые нативные зависимости через слои. Node.js 22, Python 3.12 и Go 1.22 в одном рабочем пространстве с общим шлюзом и историей вызовов.
Cron-задачи, вебхуки и фоновые пайплайны — всё в том же рабочем пространстве без дополнительных сервисов.
Что получаете
Что меняется при переходе с Supabase Edge Functions
Рантайм
Deno V8 isolate → изолированный контейнер Node.js / Python / Go с полной поддержкой npm / PyPI / Go modules.
Нативные пакеты
Sharp, puppeteer, pg и другие нативные пакеты устанавливаются через слои без изменения архитектуры.
Шлюз
API-ключи на уровне маршрута, кастомные домены и маршрутизация — без Supabase Auth.
Наблюдаемость
Общая история вызовов для HTTP, cron и пайплайнов в консоли Inquir.
Что делать дальше
Как перенести функцию с Supabase Edge на Inquir
Перенести код
Экспортируйте `handler(event)` вместо Deno serve. Тело запроса приходит как строка в `event.body`.
Добавить зависимости через слои
Нативные пакеты — в слой функции; при деплое собираются отдельно от кода.
Настроить шлюз
Маршрут с API-ключом и опциональным кастомным доменом вместо Supabase URL.
Пример кода
Supabase Edge Function → Inquir Node.js handler
Supabase uses Deno serve(); Inquir uses a standard async handler export. The Web API surface (Request, Response, fetch) is compatible; environment variables work the same way.
// Supabase Edge Function Deno.serve(async (req) => { const { name } = await req.json(); const data = { message: `Hello ${name}!` }; return new Response(JSON.stringify(data), { headers: { 'Content-Type': 'application/json' }, }); });
// Inquir Node.js 22 handler — same logic, different entry point export async function handler(event) { const { name } = JSON.parse(event.body || '{}'); return { statusCode: 200, headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ message: `Hello ${name}!` }), }; }
Когда подходит
Когда переходить
Когда это уместно
- Нужны нативные Node.js-пакеты или Python/Go рантайм
- Важны cron и пайплайны рядом с HTTP-API в одном рабочем пространстве
- You want a backend runtime that works without coupling to a Supabase Postgres project
Когда лучше не трогать
- Функция только вызывает Supabase DB и не нуждается в нативных зависимостях
FAQ
Вопросы и ответы
Как подключиться к Supabase DB из Inquir?
Обычный pg/postgres-клиент через строку подключения в переменных окружения функции.
Поддерживается Deno-совместимый код?
Если код написан без Deno.serve и Deno.env, перенос на Node.js 22 минимален — обычный express-стиль handler.