You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
> Be conservative in what you do, be liberal in what you accept from others
264
+
265
+
Collaborating services depend on each others interfaces. Often the interfaces need to evolve causing the other end to receive unspecified data. A naive implementation refuses to collaborate if the received data does not strictly follow the specification. A more sophisticated implementation will still work ignoring the data it does not recognize.
266
+
267
+
Why
268
+
269
+
* In order to be able to evolve services you need to ensure that a provider can make changes to support new demands while causing minimal breakage to their existing clients.
270
+
271
+
How
272
+
273
+
* Code that sends commands or data to other machines (or to other programs on the same machine) should conform completely to the specifications, but code that receives input should accept non-conformant input as long as the meaning is clear.
274
+
275
+
Resources
276
+
277
+
*[Robustness Principle in Wikipedia](https://en.wikipedia.org/wiki/Robustness_principle)
0 commit comments