client-serversemanticsbackwards-compatibilityforward-compatibility

Semantics on "backwards/forward-compatibility"


As a non-native english speaker, I am always confused on whether there is an arbitrary way to name the following client/server interoperability scenarios:

Scenario A:

clientN+1 - serverN+1
          \
clientN  -- serverN           where N is a concrete arch version

Scenario B:

clientN+1 - serverN+1
          /
clientN  -- serverN           where N is a concrete arch version 

Is one of the scenarios called "backwards-compatibility" and the other "forward-compatibility" in an arbitrary way? Otherwise, if both can be called both ways depending on the reference, then, is client in Scenario A backwards-compatible and server forward-compatible or the other way around?


Solution

  • When something can still connect to a previous version (I assume client - server in A) it is "backwards-compatible" with that previous version. "Forwards compatibility" is not often used in English, but it means the opposite.

    Example (A): Client N+1 is backwards-compatible with Server N, Server N is forwards-compatible with Client N+1