[aerogear-dev] Data Sync Thoughts

Summers Pittman supittma at redhat.com
Wed Jan 29 03:33:43 EST 2014


On 01/29/2014 03:08 AM, Matthias Wessendorf wrote:
>
>
>
> On Tue, Jan 28, 2014 at 7:24 PM, Douglas Campos <qmx at qmx.me 
> <mailto:qmx at qmx.me>> wrote:
>
>     On Tue, Jan 28, 2014 at 10:30:47AM -0500, Summers Pittman wrote:
>     > On 01/28/2014 09:36 AM, Lucas Holmquist wrote:
>     > > yup, this is another Data Sync thread,
>     > >
>     > > >From a client side perspective, i have concerns that there is
>     still not a clear direction yet.
>     > >
>     > > I know there are multiple ideas floating around on what our
>     model should be,  i'm all for choice, but what about deciding on 1
>     model to get started with.  Then later once we have this nailed
>     down,  we can have other "adapters" with different models perhaps
>     > All the data model is is an envelope of sync metadata around an
>     object
>     > right?
>     >
>     > We also need to think about the API and server/client protocol
>     as well.
>     >
>     > I think that for sync 1.0 we could focus on the following
>     behavior (it
>     > worked for my demos at least)
>     >
>     > 1.  We have a Sync factory similar to Pipeline, Authenticator,
>     > Registrar, and KeyService.
>     > 2.  The Sync factory consumes/manages Synchronizer instances.
>     > 3.  AG Synchronizer listens for sync messages using UnifiedPush
>     endpoints.
>     > 4.  AG Synchronizer sends sync messages using Pipes
>     > 5.  AG Synchronizer holds local data in a store
>     >
>     > 6.  When AGSynchronizer gets a message it is responsible for
>     updating
>     > the Store and then notifying code listing for updates OR for
>     notifying
>     > the code that an error has occurred and needs to be addressed.
>     >
>     > 7.  When the developer updates data in the store, the synchronizer
>     > should package that data and send it to the server.  The
>     synchronizer is
>     > responsible for error handling, retrying, back-off, etc.
>     >
>     > 8.  We should include multiple synchronizer implementations to
>     deal with
>     > multiple very simple use cases which involve legacy systems. (For
>     > instance polling to load static data on a schedule.)
>
>     The thing I have against all this is its curse and its blessing at the
>     same time. I prefer to ship small-ish tools that the developer can use
>     the way she wants instead of a full-blown-zomg-unicorns full-stack
>     solution.
>
>     Even the pipeline API requires some level of buy-in, and I really wish
>     our DataSync API to be as decoupled as possible from the other parts.
>
>
> I agree on the decoupling. That's pretty much what the iOS lib does 
> today: Only dependency is AFNetworking;
> The JS bits are similar, nothing is weaved into the existing APIs 
> there as well
>
>     This was my main concern when I was saying: "focus on the datamodel
>     first, then the update protocol, then...."
>
>
> I think we somewhat agreed already on a document based model, now it 
> looks like several POCs are build to integrate w/ our sync-server bits
Just out of curiosity, what other models are there? [Also I think it 
will be better to say metadata + object model instead of document. 
Document is 1) very generic and 2) has very different definitions 
depending on what we are thinking]
>
>
>     If we start with a fully integrated solution, it will be awesome,
>     if we
>     have buy-in from the developer. And we all know that things not
>     necessarily go this way with OSS projects, hence my kerfuffle against
>     increasing sync's scope for 1.0.
>
>
>
> So, what will the scope be? And will there be a 1.0 ?
^^ This.  One of the things we have been failing at doing (and failing 
hard) is defining a scope for sync.
> I am not really sure that we will have a 1.0.0 in the next few month.
>
> -Matthias
>
>
>     What's the MVP for the sync to be a good foundation for all the shiny
>     bits? That's the question I want to have a good answer for.
>
>     >
>     > Thoughts? Tomatoes?
>     > >
>     > >
>     > >
>     > > _______________________________________________
>     > > aerogear-dev mailing list
>     > > aerogear-dev at lists.jboss.org <mailto:aerogear-dev at lists.jboss.org>
>     > > https://lists.jboss.org/mailman/listinfo/aerogear-dev
>     >
>     > _______________________________________________
>     > aerogear-dev mailing list
>     > aerogear-dev at lists.jboss.org <mailto:aerogear-dev at lists.jboss.org>
>     > https://lists.jboss.org/mailman/listinfo/aerogear-dev
>
>     --
>     qmx
>     _______________________________________________
>     aerogear-dev mailing list
>     aerogear-dev at lists.jboss.org <mailto:aerogear-dev at lists.jboss.org>
>     https://lists.jboss.org/mailman/listinfo/aerogear-dev
>
>
>
>
> -- 
> Matthias Wessendorf
>
> blog: http://matthiaswessendorf.wordpress.com/
> sessions: http://www.slideshare.net/mwessendorf
> twitter: http://twitter.com/mwessendorf
>
>
> _______________________________________________
> aerogear-dev mailing list
> aerogear-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/aerogear-dev

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/aerogear-dev/attachments/20140129/2e0bcca8/attachment.html 


More information about the aerogear-dev mailing list