> On Nov 8, 2018, at 8:50 AM, Craig Arno <cr...@arno.com> wrote: > > On 11/7/2018 1:42 PM, Craig Arno wrote: >> Using a queue has other benefits if you find yourself in a situation... > > For the "offline" update usecase where the primary database is "server" > based, a local SQLite database could be used for local offline work (travel > receipt entry), which the database Event Write Queue could be tee'd to a file > for later "online" update replay. > > When "online" status to the remote server based database is restored, the > "remote write queue" could be played to update the remote/server database. > This would have the net effect of "mirroring" the remote database > transactions locally for one user's offline work. > > In the read direction, a query for all database table entries between the > last successful update/connect and now will have to be performed and the > local database updated with new changes from User/Bookkeeper/Accountant > activity. If there are a "lot" of changes and online time is short or > connection speed slow, and potential for interruption high, it might be best > to queue up read database changes to disk until the database read "diff" is > complete for all tables. Then the "read" half of the Sync can then be > completed with local disk based "complete" diff data. And give the user a > little arrow chasing arrow button to do a "refresh" compare between local and > remote databases, if sync is ever in doubt. The "arrow chasing arrow button" > is consistent with how remote calendar/contact based office information > systems operate today. I do this with local machine Thunderbird Calendar and > my OwnCloud server based system.
That’s a lot more complex than any backend I’d want to implement, but fortunately GnuCash’s backends are plugins so you’re welcome to write a separate one. Regards, John Ralls _______________________________________________ gnucash-devel mailing list gnucash-devel@gnucash.org https://lists.gnucash.org/mailman/listinfo/gnucash-devel