Deleting without losingintermediate
Removing a row breaks everything pointing at it, so a delete usually marks the record instead — which keeps the references resolving, makes the action undoable, and forces every read path to remember to filter.
A customer was deleted. Their orders are still in the revenue report, attached to a customer id that no longer resolves. Delete properly, and be able to undo it.
Deleting a customer hides their orders and nobody else, and restoring works.
Published in full, before you start — every point is one of these and there is nothing else. Each one runs your code; it is not a search for keywords.
Removing a row breaks everything pointing at it, so a delete usually marks the record instead — which keeps the references resolving, makes the action undoable, and forces every read path to remember to filter.
A request that times out has not necessarily failed — you just did not hear back — so the client retries, and unless the write recognises that it has already happened the customer is charged twice.