Альтернатива 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

1

Перенести TypeScript-обработчики

Обработчики Supabase — обычные Deno-модули. Перенесите их в Node.js ESM (export async function handler) с минимальными правками — большинство вызовов Web API переносится напрямую.

2

Перевести cron на расписания пайплайнов

Замените pg_cron и внешние таймеры cron-триггерами пайплайнов Inquir. История запусков и настройка повторных попыток появляются сразу.

3

Перевести фоновую работу в пайплайны

Любая логика «запустил и забыл» внутри Edge Functions становится шагом пайплайна — запускается из HTTP-обработчика и выполняется вне окна запроса.

Supabase Edge Function → обработчик Node.js в Inquir

Supabase использует Deno.serve(); Inquir — стандартный экспорт async-обработчика. Поверхность Web API (Request, Response, fetch) совместима; переменные окружения работают так же.

supabase/functions/hello/index.ts (Supabase Edge Function)
// 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' },
  });
});
api/hello.mjs (обработчик Inquir)
// 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-обработчик.