This is a single archived entry from Stefan Tilkov’s blog. For more up-to-date content, check out my author page at INNOQ, which has more information about me and also contains a list of published talks, podcasts, and articles. Or you can check out the full archive.

Compatibility and Evolution in an Asynchronous World

Stefan Tilkov,

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?