Как SQLite учили работать в распределенных системах SQLite — пример для нас всех. Это маленькая и легкая СУБД, которая создавалась изначально для небольших проектов и мобильных приложений, но потенциал у нее огромный и использовать ее можно где угодно, было бы желание.  Например, в распределенных системах. Автор rqlite вспомнил, как создал свой проект и что было после него.  🔵В 2014 году ему понадобилось создать небольшое реляционное хранилище для кластерной системы. Он решил взять SQLite и прикрутить к ней протокол консенсуса Raft. В это системе В кластере был лидер, через которого новые записи принимались и реплицировались на остальные узлы. Запись должно было принять большинство, если какой-то узел не мог этого сделать, он изолировался. Так появился rqlite — один из первых проектов такого плана, но не последний.  🔵В 2017 компания Canonical разработала dqlite. Задача была похожей, а главное отличие было в способе использования. Если rqlite — это самостоятельный сервер БД, который запускается вместе с приложением, то dqlite — это встраиваемая библиотека. 🔵В 2021 году Litestream выбрали другой подход: не пытаться превратить SQLite в полноценную распределенную базу, а найти способ восстановить данные, если сервер выйдет из строя. Их решение — сохранять WAL SQLite в Amazon S3.  🔵В 2022 появилась cr-sqlite, где записи независимо вносятся на несколько узлов, а потом синхронизируются. В libSQL разработчики вообще переписали движок СУБД и за счет этого сильно расширили функционал. Из этого проекта потом выросла Turso, которую купили Supabase.  🔵Логичным следующим этапом стали облачные сервисы — например, Cloudflare D1. В итоге можно сделать два ключевых вывода: 🔵Нет единого правильного способа создать распределенную систему. Подход зависит от задач и главной проблемы, которую вы хотите решить: например, обеспечить надежность, как в rqlite, или быстрое восстановление, как сделали Litestream.   🔵За 12 лет проекты с распределенной SQLite прошли путь от open source-решений до платных облачных сервисов от больших корпораций. Видимо, это неизбежно происходит со всеми идеями в IT.