> It is important to note that the real world is the system of record for
> most data, not the system itself, but the system still enforces some
> business rules & processes to help users avoiding mistakes.
Indeed.
> This is a problem that exists in many domains and I was wondering if
> there was a common approach to deal with that? The business people here
I don't know of a common approach, but in such cases I commonly argue
for making "corrections" first class citizens in the (software) domain,
since user errors are just too common and can never be avoided.
If you integrate user errors and their corrective measures into your
domain model, you'll get a very clean history and no valuable history
can be destroyed.
I.e., in the example you gave, I'd suggest to add a use-case and
corresponding events to your system to allow certain user groups to
manually reopen a case as a corrective measure, moving the response "A"
to another case. Model this "correction" as a process in your domain
model just as you'd model any other process.
HTH,
Alex
BTW, I submitted a talk on this exact topic to the next DDDEU conference.