Все прекрасно можно, просто надо понимать что нам надо вынести состояние в другое место. Можно обойтись и без сервера, просто сложность выносим в отдельный сервис, например, firebase. Получаем оттуда порядок и через JS перерисовываем элемент или отрисовываем его с нуля
Если стоит проблема ТОЛЬКО в получении и агрегации данных то:
1. Вы еще не познали всей боли)
2. данный вопрос решается GraphQL, предназначенный именно для этого
Ни с какими. RabbitMQ в любом случае скрывает сообщение на время обработки consumer и удалит сообщение после ack. Если прислать nack то сообщение вернётся в очередь и она встанет намертво, если прислать reject то очередь удалит сообщение, но можно будет отправить в dead letter queue.
Если нужен history (commit) log то RabbitMQ не тот инструмент и надо использовать Kafka
Не в курсе про asp, поэтому отвечу на последние вопросы
2. решают доступом по токену. типовые решения для этого - отдельный identity server, jwt токены, Oauth2/OpenId. Можно поизголяться с другими
3. не писать велосипед, а использовать готовое хранилище s3-совместимое, горизонтально масштабируемое. Кстати "любой размер" это дикость и на этом уже можно сказать "невозможно"