turt2live / evelium

A matrix chat client to facilitate communication amoung communities, organizations, and individuals
https://evelium.io
GNU General Public License v3.0
7 stars 2 forks source link

Store synced data #66

Open turt2live opened 6 years ago

turt2live commented 6 years ago

Checklist

Description

This includes a fairly major refactoring of how rooms/events are represented outside the services. It should also address issues like #64 and add in supporting framework for #54.

Much of this issue is for documentation purposes when/if the system needs to be referenced in the future.

Stats reference:

Information to store:

Estimated storage use (for a 1000 room account):

Evelium should use indexeddb to store this information. For further space-saving measures, we could filter out events which cannot be processed by the client before they leave the sync processing. This could cause problems down the road though if Evelium, for example, gains support for net.arasphere.temperature then historical events will be missing.

turt2live commented 6 years ago

Future code will also need to store things like groups data, crypto, etc. At that point it should be possible to do a one-time sync with a filter to get the misc bits of pre-state we need to continue.

turt2live commented 6 years ago

Matthew's initial work at making syncs more manageable might help make storing some of this easier. The initial implementation of storing stuff in Evelium is intentionally limited in scope pending some progress on the /sync front, although it should still be okay for daily use.

turt2live commented 6 years ago

Priority lowered pending work on the doc mentioned in my last comment.