METABYTE
К списку статей

SQLite — всё, что нужно для надёжных воркфлоу? Звучит как ересь, но у ребят аргументы

Оказывается, для durable workflows не нужен Kafka или PostgreSQL — достаточно SQLite.

30 мая 20262 мин чтения
SQLite — всё, что нужно для надёжных воркфлоу? Звучит как ересь, но у ребят аргументы

Вы когда-нибудь смотрели на свой стек для управления воркфлоу и думали: «А не слишком ли тут всего?» Если да, то статья из Obelisk — это ваш бальзам на душу. Авторы утверждают, что для durable workflows (те самые, которые переживают краш и не теряют ни одного события) достаточно обычного SQLite. Без Kafka, без PostgreSQL, без танцев с бубном вокруг распределённых очередей.

Идея проста: SQLite — это не просто база для игрушечных проектов. Благодаря WAL-режиму и фиче BEGIN IMMEDIATE она может выступать надёжной очередью. Вместо того чтобы городить огород из RabbitMQ и Redis, вы пишете события в локальный SQLite, а воркеры читают оттуда. Если процесс упал — ничего страшного, транзакция откатится, и событие останется в очереди.

Конечно, есть нюансы. SQLite не умеет в репликацию и кластеризацию из коробки, так что для высоконагруженных систем это не вариант. Но для стартапов, внутренних тулов или проектов, где нагрузка не превышает пары тысяч событий в секунду, — вполне себе рабочая схема. Плюс вы избавляетесь от головной боли с настройкой и мониторингом дополнительных сервисов.

Авторы приводят конкретные примеры: как настроить SQLite, чтобы он работал как очередь, как обрабатывать ошибки и как масштабироваться горизонтально через несколько инстансов с общим хранилищем. В общем, материал для тех, кто устал от overengineering и хочет вернуться к корням.

Комментарий студии METABYTE: SQLite — как швейцарский нож: вроде простой, а если приноровиться, можно и IKEA собрать, и сервер починить. Главное — не пытаться забивать им гвозди в продакшене с миллионом RPS. Но для прототипов и внутренних систем — почему бы и нет?

СЛЕДУЮЩИЙ ШАГ

Понравилось как мыслим?

Применяем те же принципы в клиентских проектах: AI, автоматизации, продукты, которые не умирают после релиза.

SQLite для durable workflows: аргументы | METABYTE — METABYTE