Альтернатива Supabase Edge Functions для API и пайплайнов с расписаниями и фоновыми запусками
Supabase Edge Functions запускают Deno в V8-изолятах — удобно для лёгкой TypeScript-логики рядом с вашей базой Postgres. Inquir запускает Node.js 22, Python 3.12 и Go 1.22 в изолированных контейнерах с пайплайнами, их расписаниями и фоновыми запусками, поддержкой нативных модулей и авторизацией на шлюзе — без обязательного проекта Supabase.
Обновлено: 2026-10-26
Где Supabase Edge Functions может быть тесно
- Edge-изоляты: пакеты с нативными привязками могут не работать — что поддерживается, смотрите в актуальной документации Supabase по среде выполнения
- Расписания идут через базу: Supabase запускает функции по расписанию из Postgres (pg_cron с HTTP-вызовом), а не из пайплайна с историей шагов
- Фоновая работа и очереди — отдельные возможности Supabase со своими лимитами; сверяйтесь с актуальной документацией
- Среда выполнения Deno, ориентированная на TypeScript: коду на Python или Go нужно другое место
Supabase Edge Functions оптимизированы под логику рядом с данными, которая дополняет Postgres. Когда нужны ML-инструменты на Python, сервисы на Go, тяжёлые нативные зависимости или многошаговая фоновая работа с историей по шагам, контейнерная среда выполнения может оказаться проще.
Почему Edge Functions плюс внешние обработчики добавляют трения
Отдельный сервис для фоновых задач (Railway, Fly.io, VPS) — это второй процесс деплоя, второе хранилище секретов и вторая настройка наблюдаемости рядом с проектом Supabase.
Расписания из Postgres хорошо подходят для простых повторяющихся вызовов; многошаговым задачам с повторами по шагам и историей запусков обычно нужна дополнительная структура.
Одна платформа для функций и пайплайнов с расписаниями
Inquir не требует наличия базы данных — разворачивайте HTTP-функции, обработчики вебхуков и пайплайны с расписаниями и фоновыми запусками без привязки к проекту Postgres.
Node.js 22 с полной экосистемой npm, Python 3.12 с ML-библиотеками и Go 1.22 с поддержкой CGO работают в изолированных контейнерах. Нативные модули, тяжёлые зависимости и вызовы дочерних процессов работают; пакеты объявляются в inquir.yaml.
Inquir и Supabase Edge Functions: сравнение
Среда выполнения
Inquir: Node.js 22, Python 3.12, Go 1.22 в изолированных контейнерах. Supabase: Deno в V8-изолятах (TypeScript/JavaScript).
Нативные модули
Inquir: нативные npm-пакеты, Python-библиотеки с C-расширениями, CGO — всё объявляется в inquir.yaml. Supabase: изолированная среда выполнения — какие пакеты с нативными привязками работают, смотрите в её документации.
Расписания пайплайнов
Inquir: cron-триггеры пайплайнов с историей запусков, повторами шагов и алертами. Supabase: функции запускаются по расписанию из Postgres через pg_cron — актуальную настройку смотрите в его документации.
Фоновые задачи
Inquir: надёжные задачи и шаги пайплайна, запускаемые из HTTP-обработчиков, вне окна запроса. Supabase: фоновые задачи и очереди со своими лимитами — сверяйтесь с актуальной документацией.
Миграция с Supabase Edge Functions на Inquir
Перенести TypeScript-обработчики
Обработчики Supabase — обычные Deno-модули. Перенесите их в Node.js ESM (export async function handler) с минимальными правками — большинство вызовов Web API переносится напрямую.
Перевести cron на расписания пайплайнов
Замените pg_cron и внешние таймеры cron-триггерами пайплайнов Inquir. История запусков и настройка повторных попыток появляются сразу.
Перевести фоновую работу в пайплайны
Любая логика «запустил и забыл» внутри Edge Functions становится шагом пайплайна — запускается из HTTP-обработчика и выполняется вне окна запроса.
Supabase Edge Function → обработчик Node.js в Inquir
Supabase использует Deno.serve(); Inquir — стандартный экспорт async-обработчика. Поверхность Web API (Request, Response, fetch) совместима; переменные окружения работают так же.
// 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}!` }), }; }
Выбирайте Inquir вместо Supabase Edge Functions, когда
Когда это уместно
- Нужны пайплайны с расписаниями и фоновыми запусками рядом с HTTP-эндпоинтами
- В стеке есть нативные модули Node.js, ML-библиотеки Python или код на Go с CGO
- Нужна бэкенд-среда выполнения, которая работает без привязки к проекту Supabase Postgres
Когда лучше выбрать другое
- Бэкенд почти целиком состоит из запросов к Supabase Postgres и RLS — там Edge Functions рядом с базой подходят лучше
Частые вопросы
Можно ли оставить Supabase для базы, а функции вести в Inquir?
Да — многие команды используют Supabase как управляемый Postgres, а API и логику фоновых задач держат в отдельной среде выполнения. Функции Inquir подключаются к Supabase Postgres по стандартному URL Postgres.
Нужно ли переписывать TypeScript для Inquir?
Нет. Inquir поддерживает Node.js 22 с TypeScript (через esbuild). Большинство TypeScript-обработчиков Supabase переносятся напрямую — замените Deno.serve() на экспортируемый async-обработчик.