New We are sorting MAX channels into categories and territories. Read the news
Loading image…

✅ Решение | Архитектура · Запись к врачу



Краткий ответ:

Компоненты: Web/Mobile → API Gateway → Сервис записи → CRM (REST) + Брокер → Сервис уведомлений → Email/Push-провайдер. БД записи — у сервиса записи.


📖 Разбор:

1️⃣ Компоненты

▫️ API Gateway — единая точка входа для веба и мобилки
▫️ Сервис записи — бизнес-логика: проверка слота, создание записи, своя БД
▫️ CRM клиники — внешняя система с расписанием (REST)
▫️ Брокер сообщений — очередь событий «запись создана»
▫️ Сервис уведомлений — читает из брокера, шлёт email и push


2️⃣ Поток

Пользователь выбирает слот → Gateway → Сервис записи синхронно проверяет слот в CRM → создаёт запись у себя в БД → кладёт событие в брокер → сразу отвечает пользователю «Запись создана».

Сервис уведомлений асинхронно забирает событие и отправляет письмо и push. Если CRM упала после успешного создания записи — пользователь уже получил ответ, уведомление уйдёт позже из очереди.


3️⃣ Синхрон vs асинхрон

Синхронно (REST к CRM) — проверка и бронирование слота. Пользователь должен сразу узнать: слот свободен или занят.

Асинхронно (брокер) — уведомления. Не блокируем ответ пользователю, переживаем временные сбои email/push за счёт повторной обработки из очереди.


❌ Типичные ошибки:

▫️ Всё через синхронные вызовы — при падении push-сервиса пользователь не получит ответ о записи
▫️ CRM как единственная БД записей — потеря контроля над своими данными и зависимость от чужого SLA
▫️ Брокер для проверки слота — лишняя сложность, пользователь ждёт мгновенный результат


💡 На собеседовании важно: назвать почему граница между sync и async проходит именно здесь.
Views: 324
Open in MAX Report an inaccuracy

Report an inaccuracy

Describe what needs fixing. If you have a source, add a link.

You are leaving datool.ru

The link leads to an external website. datool.ru is not responsible for its content — check the address before entering passwords or payment details.

Redirecting in 10 s

Go