Построение и поддержка в актуальном состоянии кэша данных на Node.js. Михаил Комм, ТриниДата

21 апреля 2023 - конференция DUMP в Екатеринбурге. Вас снова ждут десятки горячих, увлекательных докладов сразу в 11 секциях: Frontend, ML и DS, Backend, Mobile, Design, Team, Product, Тестирование и QA, DevOps, Аналитика и секция Science! Билеты на сайте: dump-ekb.ru Пользователи наших программных продуктов одновременно работают с набором данных, структура которого представляет собой граф. Разные группы пользователей имеют доступ к разным частям графа в соответствии с правилами доступа. Каждому пользователю необходимо оперативно видеть изменения, которые вносят в граф другие — для того, чтобы избежать конфликтов при обновлении графа. Персистентное хранение графа обеспечивает наша платформа виртуализации данных, за которой "спрятана" графовая СУБД и другие хранилища. Но постоянно обращаться к СУБД для считывания изменений и передачи их в бэкенд и фронт приложения, конечно, нельзя. Мы построили архитектуру, в которой на стороне бэкенда на Node.JS строятся кэши различных срезов графа. Синхронизация этих кэшей с персистентным хранилищем обеспечивается с помощью механизма подписки. Далее изменения транслируются во фронтенд с помощью протокола websocket. В результате мы построили решение, позволяющее работать с данными любой сложности, которое можно масштабировать на любое количество пользователей и групп. Мы расскажем о том, как пришли к такому архитектурному решению, исходя из функциональных требований. Также уделим внимание деталям реализации в Node.js.

Смотрите также