TGViewer
BASCODE BASCODE @bascodech · 139 subscribers
Post #11 187
Datomic база данных с философией

Недавно слушал подкаст, где обсуждали базу данных Datomic, якобы она рок-звезда среди всех БД со своей интересной философией. Мне стало настолько интересно, что последние дни провёл в теоретическом знакомстве, и остался в лёгком когнитивном шоке (в хорошем смысле).

Во-первых, она не удаляет данные. Никогда. Вообще! Каждая транзакция - это не просто "обновление", а добавление нового факта во временной поток. Получается встроенный time-travel: можно спросить у базы, как она выглядела на прошлой неделе в 17:42, и она честно ответит. Для задач с историей, аудитом и регуляторными требованиями - золото.

Во-вторых, архитектура: единый транзактор для всех записей и множество читателей (peer'ов), которые тянут данные напрямую из хранилища. Чтения масштабируются горизонтально, а кеши встроены по дефолту. Да, звучит странно, но красиво.

Datalog (язык запросов) тоже порадовал - что-то между SQL и Прологом, но ближе к логическому мышлению. Особенно хорошо ложится в проекты на Clojure. И вот тут начинаются минусы...
👉 В Go мире Datomic - как гость с другого континента. Нет нативной библиотеки, всё взаимодействие только через REST или EDN. То есть, хочешь использовать - ставь JVM, пиши прослойку, парси EDN. В общем, костыли.
👉 Datomic плохо подходит под высоконагруженные сценарии с частыми записями. Один транзактор = одна очередь. Не жужжит как Kafka, увы.
👉 И главный вопрос: а тебе точно нужна вечная история всех данных? Если да - это шанс. Если нет - может, стоит просто логировать изменения в Postgres.

💡 В целом, Datomic - как японская керамика: красиво, нестандартно, требует уважения к философии. Но чашку кофе в неё не нальёшь, если ты пишешь микросервисы на Go и хочешь всё просто.
Оставлю пока как архитектурную идею и источник вдохновения. А вдруг когда-нибудь соберусь на проект с Clojure и решу пожить немного вне времени 😉

P.S. Если интересно расскажу подробнее в следующих постах: про плюсы/минусы или как это всё сравнивается с Mongo и PostgreSQL?
  • 🔥 3
More from @bascodech
  1. Sep 18, 2026Мысли про дебаггинг и IDE в 2026 Вот интересная история... Расс Кокс выложил пять сессий,…
  2. Sep 14, 2026Кодить без AI сейчас как заниматься айкидо. Красиво и глубоко и десять лет до черного пояс…
  3. Sep 7, 2026Выложил свой statusline для claude code в публичный репозиторий. Лимитов у подписки три: п…
  4. Sep 5, 2026Рубрика "лысая мудрость" Как я больше года храбро готовился, но так ничего и не сделал. Вт…
  5. Sep 2, 2026Распаковал 30 релизов Go подряд, 2.9 ГБ исходников. Ради одного вопроса. Вопрос такой: поч…
  6. Aug 29, 2026Сегодня у кого-то будет распаковка :-)
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →