advanced
Chat
Design connection management, message ordering, delivery receipts, presence, storage, fan-out, and offline sync. Объясняйте API, data model, bottlenecks и trade-offs.
Чат сочетает real-time доставку, хранение сообщений, порядок в диалоге, presence, read receipt и офлайн-синхронизацию. Типично: WebSocket или SSE gateway, message service, store бесед (partition по chat ID), push для офлайн и медиа в object storage.
Групповые чаты умножают fan-out — fanout service и материализация inbox на пользователя. Порядок — server sequence на канал. E2E шифрование меняет trade-off storage и поиска.
На интервью: flow отправки сообщения, доставка online/offline и порядок в групповом чате.
Типовые ошибки: WebSocket без reconnect и cursor sync; горячий celebrity-chat на одной partition; медиа целиком в БД.
Чеклист:
- Real-time транспорт и persistent store.
- Порядок на канал и ack доставки.
- Push офлайн и catch-up sync.
- Partition storage по conversation ID.