One of our design goals is to design a system for which it is possible to have a system stay up without a major service interruption for 100 years.
This will likely never be achieved, but holding this as a goal will help us to make the right decisions regarding compatibility.
This goal means that it should be able to provide service through:
Toward this end, we believe that message formats are a critical piece of the solution to this process. We have chosen a self-describing data format with data values being both named and typed.
This permits new versions of the software to easily interact with old ones without having to know the data format of every preceding version of the software.