<html><head><meta http-equiv="Content-Type" content="text/html charset=iso-8859-1"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On Jan 30, 2014, at 11:03 AM, Matthias Wessendorf &lt;<a href="mailto:matzew@apache.org">matzew@apache.org</a>&gt; wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Jan 30, 2014 at 4:23 PM, Summers Pittman <span dir="ltr">&lt;<a href="mailto:supittma@redhat.com" target="_blank">supittma@redhat.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">I rolled up the feedback to the email I sent yesterday.<br>

<br>
One quick note, this is not a 0.1.0 plan nor a 1.0.0 plan. &nbsp;It is<br>
probably closer to a 1.5 or 2.0 plan in terms of scope. </blockquote><div><br></div><div>ahm... thinking about 2.0.0 before we have a 1.0.0 ? Not sure I understand that</div><div>&nbsp;</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
&nbsp;I tried to<br>
order things and break out big "chunks" which will need to be done and<br>
the approximate order they should be done in while also drawing a line<br>
around what features we have. &nbsp;This is why I have not placed ANY<br>
versions YET. &nbsp;By the end of today/tomorrow morning I hope that we will<br>
be in a good place to do that.<br></blockquote><div><br></div><div><br></div><div>&nbsp;</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">

<br>
Big changes from yesterday, User mgmt moved to M4. &nbsp;M6 (Sync Listener<br>
Upgrading)was merged into M3(Push Listeners) so that we can have<br>
optional push sooner.<br>
<br>
# M1 - Basic revision Control, Data Model, Change Management, Server &lt;-&gt;<br>
Client Contract<br>
<br>
&nbsp; &nbsp;* We seem to be in agreement on a basic set of metadata to be kept for<br>
each object. &nbsp;[objectId, revision, object].<br>
&nbsp; &nbsp;* We should have a basic server definition which supports CRUD and<br>
keeps our revision numbers in check. &nbsp;This may not be a server product<br>
but just a spec that can be implemented by anything at this point.<br>
&nbsp; &nbsp;* We should have basic client code which keeps up with revisions, can<br>
check the server for new revisions, and alert the user if there is a<br>
sync conflict.<br></blockquote><div><br></div><div>+1</div><div>&nbsp;</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">

<br>
<br>
M2 - Sync Listener w/ Polling based sync listener, conflict management,<br>
<br>
&nbsp; &nbsp;* We define on the client how callbacks will work for alerts when<br>
remote data changes<br>
&nbsp; &nbsp;* We implement a listener which polls a data source and delivers<br>
changes to the user.<br>
&nbsp; &nbsp;* We define how conflicts are managed<br></blockquote><div><br></div><div><br></div><div>+1</div></div></div></div></blockquote><div><br></div><div>somewhat related &nbsp;<a href="http://blog.lholmquist.org/img/ab_sync_conflict.jpg">http://blog.lholmquist.org/img/ab_sync_conflict.jpg</a></div><br><blockquote type="cite"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div>&nbsp;</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">

<br>
<br>
M3 - Push based Sync Listener, Sync Listener Strategy Management<br>
&nbsp; &nbsp;* The client and server will negotiate when it is appropriate to<br>
switch between polling, push, and realtime sync strategies.<br>
&nbsp; &nbsp;* We will build on our previous Listener work from M2 to include a<br>
Push listener that the server can speak to.<br>
&nbsp; &nbsp;* We will support ways of automagically managing sync listeners based<br>
on the availability of Push.<br></blockquote><div><br></div><div><br></div><div>overall, yes - the nasty details can be discussed at a later point, hence</div><div>+1</div><div>&nbsp;</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">

<br>
M4 - Server user management, Network Management, Server side session<br>
management<br>
&nbsp; &nbsp;* We will define in the client how network state and sync state<br>
interact. &nbsp;IE how to handle errors in fetching new data when the<br>
Listener is alerted. (Exponential back off, retry, etc)<br>
&nbsp; &nbsp;* The server will need to have some mechanism for managing user<br>
"sessions". &nbsp;This is what users are actively being synced.<br>
&nbsp; * The server should have a basic authentication and authorization plan<br>
for controlling how data is synced<br></blockquote><div><br></div><div><br></div><div>this assume we do have a server w/ pluggable adapters, no ?&nbsp;</div><div>E.g. JPA/JavaEE/Hibernate adapters verus YetAnotherDatabaseThingy adapter</div>
<div>&nbsp;</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<br>
M5 - "Real Time" Sync Listener. &nbsp;Bidirectional automatic sync<br>
&nbsp; &nbsp;* Instead of using push, Realtime Sync uses something like web<br>
sockects. to automatically sync local and remote data.<br>
&nbsp; &nbsp;* Previous Sync listeners may have to be upgraded to include "upload"<br>
abilities.<br>
&nbsp; &nbsp;* We will also include the ability to switch between Realtime sync<br>
listeners, polling listeners, and push listeners<br>
&nbsp; &nbsp;* The server will need to support this as well.<br></blockquote><div><br></div><div>Didn't M3 already include 'realtime' ?&nbsp;</div><div>&nbsp;</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">

<br>
M6 - Conflict resolution, Error detection and support<br>
&nbsp; &nbsp;* Provide a more comprehensive strategy for managing conflicts.<br>
&nbsp; &nbsp;* Provide some automated conflict resolvers<br>
&nbsp; &nbsp;* The server could get a larger set of conflict and errors messages<br>
<br>
M8 - Party<br>
&nbsp; &nbsp;* We have a sync party.<br></blockquote><div><br></div><div>what about M7? &nbsp;:)<br></div><div>&nbsp;</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">

_______________________________________________<br>
aerogear-dev mailing list<br>
<a href="mailto:aerogear-dev@lists.jboss.org">aerogear-dev@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/aerogear-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/aerogear-dev</a><br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br>Matthias Wessendorf <br><br>blog: <a href="http://matthiaswessendorf.wordpress.com/" target="_blank">http://matthiaswessendorf.wordpress.com/</a><br>sessions: <a href="http://www.slideshare.net/mwessendorf" target="_blank">http://www.slideshare.net/mwessendorf</a><br>
twitter: <a href="http://twitter.com/mwessendorf" target="_blank">http://twitter.com/mwessendorf</a>
</div></div>
_______________________________________________<br>aerogear-dev mailing list<br><a href="mailto:aerogear-dev@lists.jboss.org">aerogear-dev@lists.jboss.org</a><br>https://lists.jboss.org/mailman/listinfo/aerogear-dev</blockquote></div><br></body></html>