aerogear / offix

GraphQL Offline Client and Server
https://offix.dev
Apache License 2.0
758 stars 45 forks source link

rxDB integration / offix Limitations #995

Closed MentalGear closed 3 years ago

MentalGear commented 3 years ago

First off: thank you for this library and the Ionic integrations (maybe soon vue? 👍 ) ! I'm planning to use offix with rxdb (realtime offline db). Has anyone had expierence with integrating both, or is there a feature overlap ? https://github.com/pubkey/rxdb

Also, I would be interested to know more about how capable the offix's offline storage is? For what amount of data can it be used and is it a good fit for apps that may not come back online for weeks? It would be helpful to have a Limitations Page in the docs that could clearify these points and have them ready for reference for developers.

wtrocki commented 3 years ago

We are building similar project to rxdb but it is still in early phase. Generally I think using RxDB will mean that we do not need offix as having both stores will make things very difficult.

+1 for more documentation. We will make things clear

MentalGear commented 3 years ago

Thanks for your reply @wtrocki ! Looking forward for the documentation on usage limitation. Do you think it would be possible to use only offix's graphQL conflict resolution code with rxDB ? (rxDB on graphQL doesn't provide any conflict resolution code)

wtrocki commented 3 years ago

RXdb does allow one to handle conflicts - probably not documented as entire project is just thin wrapper. Conflicts usually should be happening on the server side. Check https://graphback.dev/docs/datasync/conflict-resolution-intro on how this can work

kingsleyzissou commented 3 years ago

Hey @MentalGear, we have now released our Offix Datastore, which is our version of a client-side database. It has support for replication to a Graphback backend or any backend that follows the GraphQL Crud specification.

You can check out the docs here: https://offix.dev/docs/getting-started

MentalGear commented 3 years ago

Thanks guys for your work, very interesting indeed !

MentalGear commented 3 years ago

I find it confusing that the new version of offix is apparently called datastore. E.g. in the docs menu, there's a dropdown with items stating: "datastore" and "offix". In the beginning, I thought datastore was simply an opt-in feature for offix. Just maybe something you want to clarify.

Screenshot 2021-03-26 at 11 45 33
wtrocki commented 3 years ago

Thank you for feedback. DataStore is our way to provide great user experience and provide proper maintenance without depending on thrid party library (Apollo).

Datastore can use Apollo, Urql etc. Offix could not move to Apollo 3.0 because of some limitations and we personally stopped working with Apollo client thus did not had any future for us to maintain library that we not going to use.

As for the docs - We wanted to still keep old offix docs for people who still use it.

MentalGear commented 3 years ago

Thanks for the reply. I understand that DataStore is a new project and not a continuation of Offix, right ? Will it be hosted at a different location, or will Offix just be renamed to DataStore ?

wtrocki commented 3 years ago

The whole project is called OffixDatastore. It uses essential elements from the offix 0.15 etc. Offix based on Apollo will be discontinued. @kingsleyzissou will share blog post with all explanations