У нас есть приложение iOS, которое говорит с сервером django через REST API. Большая часть данных состоит из довольно крупных объектов Item, которые связаны с несколькими связанными моделями, которые переводят в один плоский словарь, и эти данные редко меняются.
Мы обнаружили, что запрос для этого не является проблемой для Postgres, но генерация ответов JSON занимает заметное количество времени. С другой стороны, коллекции элементов различаются для каждого пользователя.
Я думал о системе рендеринга, где мы просто строим словарь для объекта Item и сохраняем его в redis как строку JSON, таким образом мы можем обслуживать API напрямую из redis (например, HMGET (идентификатор элементов в пользовательской библиотеке), который является быстрым и позволяет относительно легко регенерировать "визуализированные экземпляры", в основном всего пару сигналов post_save
.
Интересно, насколько хорош этот дизайн, есть ли в нем серьезные недостатки? Может быть, лучший способ для этой задачи?