I've never heard about storing/replaying commands in CQRS/ES architectures and wanted to ask is that a common practice? I understand the difference between commands and events, but, lets say, from QA point of view it may be useful to replay crashes that happened on production environment.
I think it is more common in systems where the commands can be issued from different subsystems and, due to infrastructure-related problems/inefficiencies, reach the respective command handler with an inverted time order than the one they were issued with. In this case the commands should normally be reprocessed with the correct time order. An example could be a parking/room reservation system, where a user can make a reservation either from a web client or by sending an SMS.