Как обеспечить доставку чат-сообщения на сервер без дублей, если сервер долго не отвечает или ответ вообще не пришёл?

Назначайте сообщению постоянный client_message_id и повторяйте отправку с тем же ключом, а сервер должен дедуплицировать его атомарно.

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

Что ответить на собеседовании

Назначайте сообщению постоянный client_message_id и повторяйте отправку с тем же ключом, а сервер должен дедуплицировать его атомарно.

Подробный разбор

Ответ с пояснениями

Назначайте сообщению постоянный client_message_id и повторяйте отправку с тем же ключом, а сервер должен дедуплицировать его атомарно.

Уникальность связывают с отправителем или диалогом согласно контракту. После таймаута клиент не знает, было ли сообщение сохранено, поэтому повтор не должен создавать новую запись. ACK возвращает серверный id; повторы делают с backoff, а pending-состояние сохраняют до подтверждения.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее