Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save vitalibaranov/df72cae4f75e44f7f3bcb3ecbe7a6c1f to your computer and use it in GitHub Desktop.
Save vitalibaranov/df72cae4f75e44f7f3bcb3ecbe7a6c1f to your computer and use it in GitHub Desktop.
tms-stat
Сервис агреграции и выдачи аналитических данных.
Слушает бизнес топики кафка, сохраняет ивенты в таблице исторических данных. Переодически (по крону) из сохраненных данных формирует и сохраняет аналитические снепшоты. Данные хранит в БД tms_stat кластера hhservice.
tms-notifications
Сервис уведомлений пользователей
Хранит емейлы и настройки уведомлений для пользователей. Слушает бизнес топики кафка, для полученных ивентов формирует тексты нотификаций и передает на отправку через пуш в очередь rabbit (email уведомления через рассыльщик hh) и/или кафка топик отправки через websocket или web-push-ы. Умеет по крону отправлять отложенные сообщения. Данные хранит в БД tms_notifcations кластера hhservice.
tms-indexer
Сервис индексации кандидатов
Слушает бизнес топики кафка действий с кандидатом, использует соообщения как триггер отправки данных кандидата в elasticsearch для индексации/переиндексацию (данные получает напрямую из "чужой" базы данных tms кластера hhservice, своей базы данных у сервиса нет). Используется для переиндексации всех кандидатов и кандидатов выбранных компаний (триггер - http поход на url-ы сервиса с последующим пушем тасок переиндексации в топик кафки для распределения нагрузки по переиндексации между всеми инстансами сервиса).
tms-reports
Сервис генерации клиентских аналитических отчетов в формате excel
Данные для формирования отчетов получает по http от сервисов tms-core и tms-stat. Сгенерированный файл сохраняет в minio, уведомление о формировании отчета направляет в tms-notifications через кафку. Данные хранит в БД tms_reports кластера hhservice.
tms-session
Сервис формирования сессии с авторизационными данными Talantix
Возвращает в http заголовке серилизованные в protobuf авторизационнные данные менеджера, данные о текущей клиентской сессии, текущих экспериментах пользователя. Предоставляет клиентам классы для работы с сессией (SessionFilter, SessionHolder). В базы данных сервис не ходит.
tms-mailer
Сервис отправки email сообщений
Используется для подключения к внешним почтовым клиентам менеджеров, отправки и получения email сообщений. Для отправки сообщений предоставляет http ресурс, отправка осуществляется по протоколу SMTPS. Получение сообщений осуществляется фоновым процессом по протоколу IMAPS. Данные хранит в БД tms_mailer кластера hhservice.
tms-push
Сервис push уведомлений
Хранит токены подписки менеджеров на push-уведомления, отправляет по http push-уведомления провайдеру Firebase Cloud Messaging для последующей доставки клиенту. Данные для отправки получает от сервиса нотификаций (tms-notifications) через кафку. Данные хранит в БД tms_push кластера hhservice.
google-calendar-integration
Сервис интеграции с календарем Google
Создает события в Google календаре пользователя, использует OAuth 2.0 авторизацию Google. Данные хранит в БД google_calendar_integration кластера hhservice.
outlook-integration
Сервис интеграции с календарем Outlook
Создает события в Outlook календаре пользователя, использует OAuth 2.0 авторизацию Outlook. Данные хранит в БД outlook_integration кластера hhservice.
tms-rating
Сервис оценки кандидата
Предоставляет функционал создания/удаления/редактирования/хранения оценки и шаблонов оценки. Рассчитывает среднюю оценку кандидатов в рамках вакансии. Данные хранит в БД tms_rating кластера hhservice.
tms-websocket
Сервис взаимодействия с клиентами через websocket
Сервис представляет собой клон websocket-service, адаптированный для Talantix. Предоставляет клиентами информацию для подключения по websocket соединению, поддерживает созданные websocket соединения, направляет по ним сообщения, получаемые tms-notifications через кафку. В базы данных сервис не ходит.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment