I've come around to the idea that the database is a better thing to put at the centre
I'm not advocating writing all global validations in SQL.