This article aims to help you answer compatibility related questions for using VMware GemFire / VMware Tanzu GemFire from Spring applications using the various different Spring frameworks and libraries, such as:
Spring Boot
Spring Boot Data GemFire
Spring Data GemFire
Spring Web
Here are few links to the various compatibility matrices for different framework and ibrary dependencies. These links are actively managed by the Geode and Spring Dev communities:
In addition, below are some clarifications to some commonly asked questions.
As a general rule of thumb, we ask you to follow the version compatibility as described in the matrices linked above. However, there is a certain level of backward compatibility with GemFire or Geode libraries used in client apps.
Refer to the below matrix and please note that these versions are just used as an example.
GemFire Version | Spring Boot | Spring Data GemFire (SDG) | Recommended & Supported? | Can work? |
9.9.1 | 2.3.0 | 2.3.0 | Yes | Yes |
9.9.1 | 2.0.9 | 2.0.14 | Partially recommended | It should still work because it belongs to the 2.x major version family. However, if any specific modern feature of GemFire 9.9.1 is used, it may fail. This is a trial and error approach. |
9.9.1 | 1.5.x | 1.5.x | No | Might not work because we are talking about two major versions 2.x and 1.x with GemFire 9.9.1. A lot has changed not only with GemFire but also with the underlying 3rd party dependencies it uses. |
It is important to match versions when deploying to Tanzu Application Service (TAS) (formerly known as Pivotal Cloud Foundry (PCF)) using VMware Tanzu GemFire (formerly Pivotal Cloud Cache (PCC).) This is technically a GemFire restriction and has nothing to do with Spring.
In summary, older clients can connect to and communicate with the same or newer servers. For example, as explained earlier, a GemFire 9.9 client can connect to and communicate with a GemFire 9.10 server. Clients can always connect to and communicate with a server having the same major.minor versions. In other words, a GemFire 9.10 client can connect with a GemFire 9.10 server. The patch version in the major.minor.patch format is irrelevant - a GemFire 9.10.2 client should still be able to connect to and communicate with a GemFire 9.10.0 server.
The opposite is not true. A newer client cannot connect to and communicate with an older server. For example, a GemFire 9.10 client cannot connect to and communicate with an earlier version of a GemFire server with a version of 9.9 or earlier.
GemFire Version
| Spring Boot | Spring Data GemFire (SDG) | Recommended & Supported? | Can work? |
9.9.1 | 2.3.0 | 2.3.0 | Yes | Yes |
9.9.1 | 2.0.9 | 2.0.14 | Partially recommended | It should still work because it belongs to the 2.x major version family. However, if any specific modern feature of GemFire 9.9.1 is used, it may fail. This is a trial and error approach. |
9.9.1 | 1.5.x | 1.5.x | No | Might not work because we are talking about two major versions 2.x and 1.x with GemFire 9.9.1. A lot has changed not only with GemFire but also with the underlying 3rd party dependencies it uses. |