Rails, как правильно получить данные от множества клиентов и отобразить их?
Добрый день, пишу приложение на Rails, на странице нужно отобразить карту с маркерами. Координаты маркеров асинхронно передаются от мобильных клиентов (приложение для android) определенным образом и их нужно нужно как-то хранить (кешировать). Содержат: public key, latitude, longitude. Кроме как для отображения маркеров, данные не нужны.
Как лучше организовать хранения этих временных данных? Если ограничиться только кешем (Redis), то возникает проблема с отправкой данных в кеш (от мобильного приложения), а точнее с аутентификацией таких соединений. Хранение же в бд само по себе избыточно, т.к. данные частообновляемые, но это заметно упростит интеграцию с Rails приложением.
Особенности системы: от 100 одновременно подключенных клиентов мобильного приложения, частота отправки: 1 раз в 3 секунды, нагрузка на web-приложение : до тысячи клиентов. Ruby on rails 4.2, Postgresql 9.3.5, карта leaflet+OSM, сторонние API не используются.
Непонятно, что вас смущает в варианте с Redis? Создаете контроллер, который принимает токен+координаты, проводит авторизацию и сохраняет данные в Redis.
Потом создаете контроллер который читает координаты из Redis по просьбе от карт с маркерами и выдает все новые маркеры за запрошенный интервал времени.
Я уже понял, что нужно реализовывать JSON API для мобильных клиентов, и отправлять данные в Redis из контроллера API. Сначала я разделял отправку мобильных данных и само Rails приложение на 2 разные системы, взаимодействующие между собой только через Redis. Теперь ошибку таких суждений осознал.