← Back to team overview

gtg-contributors team mailing list archive

Re: 1 task/x backends

 

On Tue, Jun 01, 2010 at 10:22:54AM -0400, Paul Natsuo Kishimoto wrote:
> Luca's first point is probably the most important. Working offline with
> tasks from any online source will only work with some sort of caching.
> We could pretend to ourselves that "caching" and a "local backend" are
> different things, but that would mostly be a lie :)
> 
>   I have user cases to work on this week, and I will mostly focus on
> other applications on the desktop, but with your permission Luca I will
> include these as well on a wiki page.
sure!
> 
>   Some thoughts: Any "transforms" of task data should be REVERSIBLE and
> BACKEND-AGNOSTIC. By REVERSIBLE I mean that:
>         Task A (Backend X) -> Task A (Local File) -> Task A (Backend X)
> ...should result in an identical object in Backend X.
> 
>   Obviously this only applies where Backend X has a *less* sophisticated
> task model than GTG—but there are lots of such cases (RTM, iCalendar...
> did everyone see my spreadsheet?
> http://spreadsheets.google.com/ccc?key=0AhRkDXhnjLt8dHM3MmZ0YmJnMm1UM1hySFNlaDBVc1E&hl=en_GB)
> 
>   By BACKEND-AGNOSTIC, I mean that if you have Backend X and Backend Y
> that both support the same subset of the GTG data model, then:
>         Task A (Local File) -> Task A (Backend X)
>         Task A (Local File) -> Task A (Backend Y)
> ...should produce the same result, *unless* there is some very good
> reason to do otherwise.
> 
>   Or suppose you also have Backend Z, which contains a set of
> information that is a superset of what X & Y hold, but still not the
> full GTG model. Then:
>         Task A (Local File) -> Task A (Backend Z) -> Task A (Backend X)
>         Task A (Local File) -> Task A (Backend Z) -> Task A (Backend Y)
> ...should ALSO produce the same result.
> 
>   I.e. as the task information degrades or is lost, it degrades in a
> similar manner for similar backends. This helps ensure that it is
> possible to determine Task A (Backend X) == Task A (Backend Y) == Task A
> (Backend Z).
> 
Yes, this is a possible issue. I think a solution to that is to sync always
against the tasks loaded from the (default) localfile backend. 
No direct communication between backends will be possible.

Attachment: signature.asc
Description: Digital signature


References