Как мы ускорили дерево документов в WikiMind
В WikiMind собрали кэшированное JSON-дерево структуры документов: коллекции → документы → поддокументы. Теперь кэш сразу обновляется, и на рендере дерева не нужны рекурсивные SQL-запросы.

В WikiMind мы собрали кэшированное JSON-дерево структуры документов: коллекции → документы → поддокументы. Теперь при каждом изменении структуры кэш сразу обновляется, и на рендере дерева нам не нужны рекурсивные SQL-запросы.
Зачем это вообще? Когда у тебя сотни коллекций и тысячи документов, рекурсивный SQL быстро превращается в тот самый “ну сейчас база подумает…”. А если сверху ещё drag-and-drop, всё начинает пахнуть болью.
Мы сделали так, чтобы перетаскивание узлов работало быстро, а мягкое удаление и восстановление каскадно применялось ко всему поддереву. То есть удалили родителя — аккуратно ушли и дети, восстановили — вернулись тоже все.
По сути, вынесли сложность из чтения в обновление структуры. Для современных data-heavy продуктов это уже почти база: меньше latency, меньше нагрузки на БД, больше счастья у пользователей и у нас ☕️