Closed ian-r-rose closed 4 years ago
The example heroku app here shows the undo/redo in action. Users only undo transactions that they have added themselves (that is, they don't undo things that collaborators have done). The "read only" check box is included in the undo/redo stack.
One thing to keep in mind, it's technically impossible to undo a transaction before it is created, since by definition the transaction id would not yet exist. So really, the cemetery is only taking care of concurrent undo of a particular transaction.
One thing to keep in mind, it's technically impossible to undo a transaction before it is created, since by definition the transaction id would not yet exist. So really, the cemetery is only taking care of concurrent undo of a particular transaction.
What do we do in the case where a network snag causes an undo transaction to arrive before the original transaction message? I don't think it is very likely, but we should at least fail loudly if we are not going to handle that case.
What do we do in the case where a network snag causes an undo transaction to arrive before the original transaction message? I don't think it is very likely, but we should at least fail loudly if we are not going to handle that case.
The transaction cemetery will handle that case.
The transaction cemetery will handle that case.
Then I have no concerns 👍
Ready for another look-through.
This implements undo/redo for the datastore.
IServerAdapter
interface, which can receive transactions, as well as requests for undo and redo events. Please let me know if the interfaec seems reasonable.