В настоящее время я ищу создание службы обмена сообщениями, где пользователи могут отправлять и получать сообщения в частном порядке между собой. У меня может быть потребность в многопользовательском чате, но по большей части я хочу, чтобы только отдельные получатели могли читать отправленные им сообщения.
Глядя на RabbitMQ, имеет ли смысл использовать один обмен и создавать очередь для каждого пользователя при входе в систему и уничтожать каждую очередь при выходе из системы? Существуют ли серьезные проблемы с производительностью при создании очереди для каждого пользователя или есть лучшие альтернативы?
Я создаю REST API и планирую, чтобы пользователи отправляли сообщения другим через конечную точку (/send) и подписывались на свои собственные потоки сообщений через веб-сокеты или что-то подобное. Я, вероятно, также буду хранить сообщения в MongoDB, чтобы пользователи могли получить доступ ко всем своим предыдущим сообщениям. Приветствуются любые предложения по структуре.