# highload++

Published articles for highload++.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Extracting a Chat Microservice from a Monolith: Lessons from hh.ru

DevFeed: [Extracting a Chat Microservice from a Monolith: Lessons from hh.ru](<https://devfeed.tech/articles/15-30692.md>)

Original publisher: [Read original article](<https://habr.com/ru/companies/hh/articles/956102/>)

Author: Ilrahil (hh.ru)

Published: 2025-10-14T10:00:26Z

Content type: article

Language: ru

Sources: [HeadHunter RU](<https://devfeed.tech/sources/headhunter-ru.md>)

Topics: [Back end](<https://devfeed.tech/topics/backend.md>), [event driven](<https://devfeed.tech/topics/event-driven.md>), [PostgreSQL](<https://devfeed.tech/topics/postgresql.md>), [Java](<https://devfeed.tech/topics/java.md>), [Databases](<https://devfeed.tech/topics/databases.md>), [Kafka](<https://devfeed.tech/topics/kafka.md>), [elasticsearch](<https://devfeed.tech/topics/elasticsearch.md>)

Tags: [backend](<https://devfeed.tech/tags/backend.md>), [elasticsearch](<https://devfeed.tech/tags/elasticsearch.md>), [event-driven](<https://devfeed.tech/tags/event-driven.md>), [hh-ru](<https://devfeed.tech/tags/hh-ru.md>), [highload-plus-plus](<https://devfeed.tech/tags/highload-plus-plus.md>), [java](<https://devfeed.tech/tags/java.md>), [kafka](<https://devfeed.tech/tags/kafka.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>), [tag-1e4ee1f65f5a](<https://devfeed.tech/tags/tag-1e4ee1f65f5a.md>), [tag-75f84211cab4](<https://devfeed.tech/tags/tag-75f84211cab4.md>), [tag-bfc1a5037c9b](<https://devfeed.tech/tags/tag-bfc1a5037c9b.md>), [tag-c2e9e71d738f](<https://devfeed.tech/tags/tag-c2e9e71d738f.md>), [tag-d4be1d74f775](<https://devfeed.tech/tags/tag-d4be1d74f775.md>)

### AI overview

A backend developer at hh.ru describes the staged extraction of a chat microservice from the Negotiations monolith. The article covers separating modules, monolith dependencies, SQL joins, transactions, asynchronous API delays, and the final service extraction, using event-driven architecture, data-model redesign, and an integration layer.

### Source excerpt

Про выделение микросервисов из монолита рассказывали много, но у каждого свой путь - в статье расскажем про наш. От простейшего выделения сервиса в модуль в начале до решения проблем разрыва транзакций, SQL Join-запросов, задержек асинхронного API и непосредственно выделения нового сервиса. Использование event-driven архитектуры, редизайна модели данных и интеграционного слоя как основных подходов в процессе выделения. Читать далее