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

Схема взаимодействия компонент

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

Time Scheme

  1. PostgreSQL (Master) — используется как основная база данных, здесь хранятся пользователи, каналы, посты, а также конфигурация Time.
  2. PostgreSQL (Replica) — приложение может использовать read-реплики, таким образом достигается масштабирование базы данных и отказоустойчивость.
  3. S3 — хранение загружаемых в Time файлов
  4. Redis — используется как распределенный кеш, а так же позволяет реализовать возможность работать в режиме кластера (механизм Leader Election) при использовании приложения в режиме высокой доступности (High Availability).
  5. Elasticsearch/OpenSearch — используется как бэкенд для поискового движка.
  6. Kafka — используется для обмена сообщениями между инстансами time-server.
  7. Push Notification Server — сервис для отправки push-нотификаций на моб. устройства.
  8. Slack-Time Proxy — упрощенный прокси-сервер, который проксирует входящие вызовы Slack API в формат Time.
  9. time-front — веб-приложение Time.