Перейти к основному содержимому

Архитектура системы

с4-1.png

Основные модули

API (программный интерфейс приложения) модуль (Nest.js) - отвечает за авторизацию, управление проектами, публикацию дашбордов (отчётов) и другие пользовательские действия.

Golang модуль - работает с коннекторами к источникам данных и обеспечивает связь с ClickHouse.

Хранилища данных

ClickHouse - основное хранилище аналитических данных. Здесь хранятся большие массивы информации, которые нужны для построения дашбордов и аналитики. Обеспечивает быструю обработку запросов даже при работе с миллионами строк.

PostgreSQL - база данных для служебной информации: учетные записи, права доступа, настройки проектов. Все, что относится к управлению системой и пользователями.

Redis - используется для кэширования. Он ускоряет работу интерфейса и API, чтобы запросы выполнялись быстрее и система не нагружала базу лишними данными.

Служебные компоненты

Nginx - прокси-сервер, который направляет запросы пользователей к нужному сервису и отвечает за балансировку нагрузки.

Cron - запускает автоматические задачи по расписанию (например, обновление данных).

Loader - отвечает за импорт данных из файлов и других источников.

Mailer - рассылает уведомления на почту.

Notifications и Chat - обеспечивают работу уведомлений и переписок.

Templates - хранит и управляет готовыми шаблонами визуализаций.

Watch - следит за изменениями в папках с коннекторами и автоматически запускает импорт при необходимости.

Blocker - контролирует процесс импорта, чтобы исключить одновременные конфликты.

Active Directory - через нее происходит подключение пользователей для удобства корпоративного использования.

Взаимодействие между сервисами

RabbitMQ - передает сообщения между разными модулями и распределяет задачи, чтобы все процессы выполнялись в нужном порядке и не мешали друг другу.