Как спроектировать чат-систему на Go?

Senior
157 просмотров
AFK Offer AI

WebSocket для real-time, каждый коннект — горутина. Сообщения через pub/sub (Redis/NATS). Хранение истории в PostgreSQL/Cassandra. Структура: connection manager (sync.Map user→conn), room manager (подписки), message router. Доставка: at-least-once с client-side dedup по message ID. Масштабирование: несколько инстансов через pub/sub, sticky sessions не нужны.

Следующий вопрос

Как оптимизировать GC?