Высокоэффективное хранение данных в брузере

У меня есть приложение PWA на React + Redux. Это мессенджер.

Структура данных простая:

{
    chats: { 
        [hash: string]: ChatType 
    },
    messages: { 
        [hash: string]: { 
            [id: number]: MessageType 
        } 
    }
}

Также я использую ReduxPersistor. Проблема следующая:

Пользователь может не закрывать вкладку несколько дней, при этом активно переписывась. Соответственно, может накопиться под 10000+ сообщений и 1000+ чатов (чаты не так часто увеличиваются).

Объект получается под 30-50мб. Из-за этого каждая итерация ReduxPersistor на сохранение в IndexedDB может занимать до 2-3с. Что очень много, особенно на слабых мобильных устройствах.

Поэтому я начал понимать, что такое хранение данных не очень эффективно. Может кто-то подсказать (статьи, книги или что-то другое) как правильно хранить данные в мессенджере, чтобы я мог пользоваться и получать доступ к сообщениям как с сетью, так и без.


Ответы (0 шт):