Как мы подружили чат между двумя backend-системами
На PDP Mobile сделали двустороннюю синхронизацию чата между нашей системой и внешней CRM: polling каждые 10 секунд, блокировки, fallback на БД и автообновление UI через WebSocket.

На PDP Mobile у нас была классика интеграций: чат есть и у нас, и во внешней CRM, а пользователю нужен один цельный диалог, без магии “обновите страницу”. Сделали двустороннюю синхронизацию между PDP и CRM.
Как это работает: каждые 10 секунд запускаем Redis-based polling и проверяем новые сообщения в CRM. Чтобы не словить дубль и хаос уровня “два бэка спорят, кто главный”, поставили блокировки: poll одновременно выполняет только один воркер.
Источников сообщений два: — API внешней CRM как основной путь; — прямое чтение из БД CRM клиента как fallback, если API решило внезапно уйти в отпуск.
На фронте тоже без боли: при WebSocket-событии мы автоматически обновляем кеш RTK Query, поэтому новые сообщения прилетают в UI почти бесшовно.
В эпоху, когда все гонятся за real-time UX, отказоустойчивость уже не “nice to have”, а база. Мы это прочувствовали на практике