Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Offline mutation queue #201

Open
micimize opened this issue Mar 26, 2019 · 12 comments
Open

Offline mutation queue #201

micimize opened this issue Mar 26, 2019 · 12 comments
Projects

Comments

@micimize
Copy link
Collaborator

Broken out from #127:

  • track connection status with the connectivity plugin
  • queue on disconnect, execute on reconnect (fancier retry strategies could be implemented later)
@micimize micimize added this to To do in Open Scrum Mar 26, 2019
@micimize micimize moved this from To do to Future in Open Scrum Mar 26, 2019
@micimize
Copy link
Collaborator Author

For future reference, apollo's offline support thread

@jifalops
Copy link

jifalops commented Feb 3, 2020

Update on this? It looks like apollo's offline support is there but is some-assembly-required. Are there any offline cache options that work for flutter?

@micimize
Copy link
Collaborator Author

micimize commented Feb 4, 2020

@jifalops still on the back-burner - we have an offline cache already (though there are some improvement discussions).

There isn't really a highly active core maintainer right now (#420). Hopefully the app I'm working on will get to the point where I need to come back and address a lot of this stuff

@akinsho
Copy link

akinsho commented Nov 2, 2020

@micimize the project I'm working on is going to need something like this pretty soon. I'm wondering if I could help. I'm pretty unfamiliar with the internals of this project though. Any ideas where I might start to get an idea on how to implement this

@ConProgramming
Copy link

Any updates on this? It's important and I'm looking for a solution... I'd be happy to write the code myself if someone (@micimize ?) can give some guidance on to what I'd be doing

@jifalops
Copy link

@ConProgramming I believe the ferry package offers some implementation of this, but it's fairly new and I haven't tested it myself.

@ConProgramming
Copy link

Ah okay I'll take a look thanks... I'd prefer to do it in graphql_flutter tho :/

@micimize
Copy link
Collaborator Author

I will go into how we might approach this when I record #762, which I still plan on doing fairly soon.

The ferry implementation will be a great reference in general. I think we should be able to implement it with our link system – @smkhalsa what is the difference between your Plugin system and regular links?

@smkhalsa
Copy link
Contributor

In ferry, our Plugin system has been replaced with TypedLinks.

The OfflineMutationTypedLink might be a useful reference, although it's experimental and untested.

@smkhalsa
Copy link
Contributor

One issue you may run into is how to run cache updates following the rehydration and successful execution of an offline mutation. I've architected ferry to handle this by maintaining a central map of UpdateCacheHandlers.

@ConProgramming
Copy link

Need this in an app I'm working on, and transferring the entire thing to ferry seems like a quite a bit of work... if there's any way I can help implement this here I'd be happy to.

@Jonas-Sander
Copy link

We're looking to replace Firebase including Firestore in the future.
GraphQL would maybe a nice "replacement" on the client side and offline support would be killer;)
(Disclaimer: Haven't used GraphQL yet. I hope this even makes sense😉 )

Would also be absolutely interested in helping out if we go that route.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
No open projects
Open Scrum
  
Future
Development

No branches or pull requests

6 participants