Я любому способу буду рад
Дисклеймер(подход гавно)
вобщем, я складывал в redis json с id чата
в нем замутил два ключа с массивами в которые добавлял id нового сообщения, а при получении пользователем сообщений (что происходило в рамках бизнес логики при открытии чата и лоудере) я эти id удалял
вобщем чем плох такой подход, если пользователь накопит 1000 сообщений, то при получении он их будет ждать невероятно долго, так как удаление элементов происходит при итерировании по объектам сообщений и последующей отдаче пользователю
а при 1000 клиентов там вообще жесть будет
ну это был внутренний проект небольшой компании и сжатые сроки, поэтому сделал как смог