Tufts CS 117 (Fall 2024):
Internet-scale Distributed Systems

Tufts CS 117 Reading Assignment:
Postel's Law: The "Robustness Principle"

Overview

This is to prepare for discussion of an interesting topic that doesn't get enough attention: how do you build systems that work well even when software at the various communicating nodes isn't speaking quite the same language!

This can be a minor problem with any software system: perhaps a library is updated and when you link the new version your program does something unexpected, or you are surprised when your C compiler is updated to support a new version of the C standard. When software is connected across organizations and especially on an Internet-scale, the problems become very significant and very important. There are several inter-related reasons incompatibilities can arise:

So, we are faced with a very big, critically important and in some ways surprising challenge: how can we build systems that work reasonably well even when endpoints don't agree on the rules for communicating!

One important though controversial perspective is attributed to Internet pioneer Jon Postel, who formulated what is sometimes called the Robustness Principle, but more commonly Postel's Law. There are a few minor variations of the phrasing, but typically:

"Be liberal in what you accept, and conservative in what you send".

Assignment

Please do the following (very short) reading in time for class, and be ready to discuss the good and bad implications of Postel's law.

Reading

Please read the following:

Optional reading