Я создаю систему для игры в карты, и я выбрал систему pub / sub, использующую SSE, чтобы обновлять клиентов. Проблема, с которой я столкнулся, - это хранение сообщений для последующего запроса. Один вариант использования - игрок присоединяется к столу в середине игры. Я хотел бы получить все события из текущей руки и воспроизвести их для этого пользователя.
В настоящее время я использую pub / sub redis, но сообщения полностью эфемерны. Я немного покопался в rabbitMQ, и, похоже, это тоже так. Кажется, у Kafka есть функция воспроизведения? Однако я не могу сказать, насколько детализирован он, как мне бы хотелось.
Разумно ли ожидать стойкости от моего уровня pub / sub? Или надо логи c разделить? Я мог бы запустить потребителя только для того, чтобы принимать события и сохранять их. Однако это просто кажется тяжелым, слишком много возможностей для неудачи.
Я также хотел бы запросить статистику по игрокам и сыгранным картам в старых событиях. Однако скорость не имеет значения для этих запросов.