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?
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