База данных — это фундамент. Ошибся на старте, и потом весь проект работает как швейцарские часы, которые кто-то засыпал песком. Мне повезло: я узнала про эти грабли от людей, которые уже на них наступили. Делюсь — чтобы вы не наступали.

«Нам нужна репликация сразу»

Звучит серьёзно и ответственно. На практике — это первый признак, что команда ещё не знает, нужен ли им вообще их продукт. Репликация решает проблему масштабирования. Если у тебя 10 пользователей в день — у тебя нет проблемы масштабирования. У тебя проблема продукта. Сосредоточься на ней.

«Давайте сразу на микросервисы»

Это продолжение первой фразы, только сбоку. Микросервисы — это операционная сложность, которую получаешь в подарок: отдельные базы, очереди сообщений, сервисы дискавери. Для команды из трёх человек это не ускорение, а замедление. Монолит на старте — это нормально и правильно.

«Возьмём самую модную СУБД»

Помните, как все вдруг кинулись на MongoDB в 2010-х? Это был peak Hype Cycle. Потом все удивлялись, почему данные роллбэкятся, а JOIN-ы тормозят на ровном месте. Мода — это не критерий выбора. PostgreSQL стала дефолтом не потому, что её любит Hacker News. А потому что она работает.

«SQLite — это для игрушек»

Эту фразу я слышу до сих пор. SQLite обслуживает несколько миллиардов устройств и приложений. Wikipedia, Twitter (кэш), самолёты Boeing — все используют SQLite там, где нужно. Проблема в том, что люди не знают, где проходит граница применимости. Spoiler: для большинства MVP и малых проектов — это именно SQLite.

«Базу выбрали, теперь менять не будем»

Самая опасная фраза. Миграция базы данных — это не ядерная война. Если архитектура позволяет, сменить PostgreSQL на MySQL (или обратно) — два-три спринта. Но если данные уже в продакшене и никто не думал про абстракцию — тогда да, тогда это больно. А больно было не из-за миграции. А из-за решения на старте.

Ни одна из этих фраз не убивает проект мгновенно. Они убивают его медленно, как песок в часах. Главное — вовремя их услышать и не повторять.