Suppose A depends on B to function, i.e., A -> B

  • Forward compatibility means that if a new version of B is deployed, current A should still be able to handle it
    • This means we can upgrade B without breaking A
    • If not, then we have to upgrade A so that it can process both current B and next version of A first
  • Note this is what people normally mean when they talk about backward compatibility, which is not exactly same as the definition. The real definition is that a newer version of A still accepts B