Restaurant integrity example?

That’s a nice observation, @TalkAboutQuality.

(Just to clarify, I’m not saying that this design is good or desirable! I’m just saying that it doesn’t technically violate concept integrity.)

I too would like to find some way to codify this intuition that you have as a design principle. The problem is that concept integrity has to be defined independently of any other concepts! I can’t say that a key property of the Review concept is that it doesn’t cause cancellations in the Reservation concept, because one concept shouldn’t be designed in the context of another. I can’t say that actions of Review shouldn’t affect any other concepts, because that would rule out all kinds of useful things (for example, syncing with the Karma concept so you get credit for writing reviews).

Another possibility here is to say that the integrity of Reservation is violated because the cancel action should not happen spontaneously, but should only be executed by the user. (Dennis @orcmid is hinting at this in his reply.) That seems more plausible, but it would prevent a sync that cancels a reservation when a restaurant has to unexpectedly close, for example.

This example is intriguingly related to another one I’ve been thinking about with my students recently. In Facebook, when Alice tags Bob in a photo, the photo (by default) becomes visible to all of Bob’s friends. That seems undesirable to me, because it seems to violate the integrity of the Friend concept, which says that only your friends should see your posts. One of my students responded that Facebook is simply executing a action on Bob’s behalf, implicitly posting the photo on the assumption that if he’s tagged in it, he’d want to share it. If I grant that, my objection will now have to be that Bob didn’t in fact condone that post action, and may well not want it to be done. A more egregious example of this synchronization happened in Facebook Beacon, in which when you bought an item online, Facebook automatically posted on your behalf to tell all your friends what you’d bought. Andrew Hinton discusses this in his lovely book Understanding Context, whose relationship to context design I discuss in another post.