-
Notifications
You must be signed in to change notification settings - Fork 0
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
Decide on a realtime backend #1
Comments
Google's realtime api sounds pretty straight forward to use and the results should be nice. My suggestion is to use pouchdb which would take care of the state syncs for us. A very detailed explaination of the architecture using redux and example implementations can be found here. We could reuse a lot of the redux-middleware and server implementations and concentrate on integrating draft.js and user authentication. |
So user authentication is really the only part of the pouchdb setup that I'm unclear about but I'm sure that will sort itself out. Unless anyone else has a reason against it, I'm all for trying to use pouchdb |
Thanks for the great links, they really helped illuminate some confusion for me. |
@RaitoBezarius @zyzo what's your opinion on the topic? Digging into OT I've found 2 alternatives: Differential Synchronization and CRDT. I still don't know which type of sync and conflict resolution |
Could I suggest looking into RethinkDB ? On Wed, Feb 24, 2016, 12:26 Chau Thai notifications@github.com wrote:
Ryan Lahfa, de mon téléphone. |
@RaitoBezarius RethinkDB doesn't support offline mode yet. The only option is to dump a backup when you go offline. |
@chauthai Hmmm, you're definitely right. (My guts would argue to say: let's build offline mode on top of RethinkDB then! 😄 but alright). In this case, let's stick to PouchDB, I imagine that for this project, we should not think too much on how it is done, but what are the drawbacks / advantages of the technology? So we can iterate on the idea and see where does it take us. So my question is:
(Note: It sounds we're doing like React does with the DOM -- except we're reconciling two documents, could we learn something from what they learnt doing reconcilation?) |
@RaitoBezarius Hehe, yeah I would really like to add offline functionality to RethinkDB 😃 ...
Reading through the conflict guide, I think the best solution for our use case is to use the Accountants don't use erasers strategy.
There is already an implementation of the strategy for PouchDB called delta-pouch. |
One that comes to mind immediately is google's realtime api. This seems to already do a lot most of what we would need but it might be challenging to integrate it into a component. I haven't looked too closely but assuming they let us provide callbacks, we shouldn't have too much trouble.
We could also do a normal socket.io setup but we would have to do the state merges ourselves. There are some packages which implement the same OT algorithm that google docs uses which might be worth considering at least.
I also read about some people basing a real time editor on firebase but I haven't use them before so I'm not sure how that would look.
The text was updated successfully, but these errors were encountered: