The CRUD-based part of our application needs:
- Offline bidirectional "two-way" syncing
- Ability to modify data until ready and then "publish".
- Audit log
Event Sourcing (or the "command pattern") is what I'm looking at to accomplish these items. I feel comfortable with solving 2&3 with this, but not clear for item one, syncing.
If timestamps are used for each command (if needed), do the offline commands need to be applied to master system as they would have been in real-time (coalesced), or can I just consider them applied as happening at the end of any command (with a more recent timestamp)?
Any basic algorithm description for command-based sync would be helpful.