Как реализовать свою чат-платформу?

Рано или поздно вы решите написать чат. Да, свой чат. И, возможно, вспомните про эту статью.
Изложу свое понимание, видение на построение системы любого чата, будь то чат между 2 пользователями, групповой чат (открыто и закрытого типа), чат с контактом в другом мессенджере, канал.
Все изложенное субъективно. Искал разные источники, анализировал другие чат-платформы. Надеюсь, будет полезно.
И так.
Что такое чат? Мы каждый день общаемся в чатах, чаты в разных приложениях похожи и не похожи одновременно.
Сделаем несколько обобщающих утверждений, на которые будем опираться далее.
- Чат - это хронологическая лента сообщений.
- Сообщение - некая единица контента (текст, файл, картинка, аудио, видео, стикер, оповещение, ...)
- также у сообщения есть дата-время создания сообщения.
- У сообщения всегда есть отправитель.
- В чат сообщения могут добавлять разные отправители (пользователи, боты, система).
- В чате есть участники. По сути - это подписчики, которые подписаны на получение новых сообщений в чате.


















