On Dec 16, 2014, at 4:22 AM, Lukáš Fryč <lukas.fryc@gmail.com> wrote:

Hey Luke,

That seems sensible. I'm glad you are questioning this at the very beginning.

JS conflict resolution in my eyes makes sense if we build some kind of ORM or three-way binding solution (we'd obviously create just client-model-to-server-model binding part, the rest is up to the MVC framework).

I also believe that Conflict Resolution API shouldn't be much different from our Realtime sync from the API standpoint,
the real difference is that Conflict Resolution can easily intergrate with existing concepts and backends because of its RESTful nature,
while Realtime sync requires special backend handling (aka sync-server):

     Sync.save(objectInstance);


Additionally, Conflict Resolution has points on the roadmap that goes far behind regular framework principles: Partial Updates, Batch Updates, Server Notifications...

As discussed on F2F, we should though always think about how this integrates into wider picture (existing frameworks).

For this moment, we could start just with examples, they could also demonstrate us what deficiencies existing solutions have.
And if nothing, the only deliverable for conflict resolution at the end maybe a cookbook, a doc/guide and maybe some contributions to upstream :-)
this might be a good start



On Mon, Dec 15, 2014 at 5:31 PM, Lucas Holmquist <lholmqui@redhat.com> wrote:
So i have some concerns on the Current state of the conflit resolution POC that i created.

in it's current state, i had 3 methods in the api

* Read - just a GET
* Save - PUT/POST with an added "conflict" callback to handle the conflict resolution
* Remove - just a DELETE

This was all done before we wrote this spec

https://aerogear.org/docs/planning/roadmaps/AeroGearConflictResolution/

but even then,  from the JS client perspective, it felt a lot like a pipe.  In jQuery.ajax,  you can actually listen for a "409".

The other thing that concerns me is that on the client side, people are using frameworks such as Ember, Angular, Backbone,etc...   that have there own ways of doing server requests so i would hate to start re-inveting the wheel again.

while the read/remove don't really do anything different(they are just GET/DELETE's), the save method(PUT/POST) does.  This is were all the "conflict resolution happens”.  (what type on resolution algorithm, auto-merge, etc...)

I think it would be interesting to try to integrate this part into existing frameworks, rather than trying to create Pipeline again.

i think for node.js this might be interesting too, since we could create a piece of middleware that hooks into an express/connect request


Again, this might only be a concern on the JS client side,  not sure what the other platforms are like in this regard


_______________________________________________
aerogear-dev mailing list
aerogear-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/aerogear-dev
_______________________________________________
aerogear-dev mailing list
aerogear-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/aerogear-dev