Compatibility and Evolution in an Asynchronous World

, Jun 19, 2004

Carlos Perez, whose site I can only recommend by heart, writes about the applicability of the Liskov Substitution Principle, Design by Contract and Postel’s Law in the context of an SOA:

What I can’t get a handle on is that these principles and guidelines seem to be have an assumption of a client and server relationship. This is a consequence of its synchronous procedure call roots. That is, in a peer-to-peer relationship, shouldn’t the pre and post conditions be symmetric? If that were so, wouldn’t compatibility be much more restrictive? That is you can only be conservative in all your communication since everyone is equally a sender?