Я разбирался с настройкой SQLite у клиента и наткнулся на вещь, которой не ожидал.
База работала сразу на нескольких машинах, но у SQLite всё равно оставался только один процесс записи.
Потом я нашёл LiteFS.
Он не пытается убрать модель SQLite с одним писателем. Вместо этого одна машина выбирается основной через распределённую аренду, а все остальные становятся репликами.
По сути, решение оказалось таким: просто гарантировать, что запись всегда идёт только с одной машины.
И каким-то образом это делает всю архитектуру намного проще.
Сам код продления аренды выглядит примерно так:
База работала сразу на нескольких машинах, но у SQLite всё равно оставался только один процесс записи.
Потом я нашёл LiteFS.
Он не пытается убрать модель SQLite с одним писателем. Вместо этого одна машина выбирается основной через распределённую аренду, а все остальные становятся репликами.
По сути, решение оказалось таким: просто гарантировать, что запись всегда идёт только с одной машины.
И каким-то образом это делает всю архитектуру намного проще.
Сам код продления аренды выглядит примерно так: