Markus,
While I agree in theory that the back-end should handle all domain constraints (ex. an invalid state), in practice I find it better to catch the error before it reaches the back-end so the user can be alerted and fix the problem. Once the data is submitted to the back-end it is too late to do anything about it.
>>>>>>>>>>>>>>>>>
>IMO, everything that can put data in an invalid state (cause error messages and alike) has to be handled in the back end. Whether data is logically correct (like in your cities example) is a different question, but it can not bring up the problems that were initially described by John.
>
>
>Markus