I'm looking for a good way to maintain in sync local sqlite databases that could be offline to a master one, for a invoice app.
Then I read about EventSourcing and Log structured storage and wonder if it could be a better way to maintain in sync the data. However, I never before use event sourcing.
Exist a master database with all the invoice info (customers, invoices, payments, etc), and each local database in a mobile device have a full copy of it, and must stay as current as possible. Most of the time it will be on-line, but mobile internet is unreliable and could be offline for a while.
Most likely, edit on the same record is not common, even for invoice where each salesman commonly have his own subset of invoices.
Is good idea to use Event Sourcing here, or similar? Any pointers in how do this well?
The use of local sqlite is the only hard requirement, I'm totally free in the backend.
invoice-added
with a blob might be better. Also consider: What does the master do if a client sends an invalid event (e.g. adding an invoice for another customer). How does this then get rectified in the local copy?