Forward and Backward Compatibility: Difference between revisions
(5 intermediate revisions by the same user not shown) | |||
Line 7: | Line 7: | ||
A system is said to be '''backward compatible''' is it is design to be compatible with older versions of itself. | A system is said to be '''backward compatible''' is it is design to be compatible with older versions of itself. | ||
<font color=darkkhaki>If old clients encode data and send it to the current version of the system, a backward compatible system can process that data without error.</font> | <font color=darkkhaki>If old clients encode data, with an old version of the schema, and send it to the current version of the system, which uses the current (newer) schema, a backward compatible system can process that data without error and respond to those old clients in a way that does not break them.</font> | ||
=Forward Compatibility= | =Forward Compatibility= | ||
Line 14: | Line 14: | ||
<font color=darkkhaki>If newer clients encode data, with the new version of the schema, and send it to an old version of the system and that system was designed to be forward compatible, then the system can process that data without error.</font> | <font color=darkkhaki>If newer clients encode data, with the new version of the schema, and send it to an old version of the system and that system was designed to be forward compatible, then the system can process that data without error.</font> | ||
=Full Compatibility= | |||
Full compatibility is [[#Forward_Compatibility|forward]] and [[#Backward_Compatibility|backward]] compatibility. | |||
=Subjects= | |||
* [[Serialization#Keep_your_Schema_Backward_Compatible|Serialization and Schema Backward Compatibility]] | |||
* [[Protocol_Buffer_Concepts#Data_Evolution_with_Protocol_Buffers|Data Evolution with Protocol Buffers]] |
Latest revision as of 00:04, 9 May 2024
Internal
Backward Compatibility
A system is said to be backward compatible is it is design to be compatible with older versions of itself.
If old clients encode data, with an old version of the schema, and send it to the current version of the system, which uses the current (newer) schema, a backward compatible system can process that data without error and respond to those old clients in a way that does not break them.
Forward Compatibility
A system is said to be forward compatible is it is design to be compatible with newer, future versions of itself.
If newer clients encode data, with the new version of the schema, and send it to an old version of the system and that system was designed to be forward compatible, then the system can process that data without error.
Full Compatibility
Full compatibility is forward and backward compatibility.