Spring Boot, SBDG, SDG, Java Client, and VMware GemFire / VMware Tanzu GemFire Compatibilities
search cancel

Spring Boot, SBDG, SDG, Java Client, and VMware GemFire / VMware Tanzu GemFire Compatibilities

book

Article ID: 294002

calendar_today

Updated On:

Products

VMware Tanzu Gemfire

Issue/Introduction

Objective

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

  • Geode / GemFire Starter
Note: Pivotal Cloud Cache (PCC) is now VMware Tanzu GemFire.

Resolution

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 VersionSpring Boot Spring Data GemFire (SDG)Recommended & Supported?Can work?
9.9.12.3.02.3.0YesYes
9.9.12.0.92.0.14Partially recommendedIt 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.11.5.x1.5.xNoMight 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.
 
Note: If your GemFire cluster (Server Side) is running on a supported version, but your Client App is using an unsupported version of libraries, then it is likely you will have to upgrade to a supported version if you run into issues. 

For instance, while GemFire 9.1.1 clients are compatible with GemFire 9.9.1 servers, GemFire 9.1.1 clients are no longer fully supported. Hence, we always recommend moving all clients to a fully supported version.


Matching Client / Server Versions in Spring Apps

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.


Checklist:
To begin with, here are few links to the various compatibility matrices for the framework / libraries dependencies. These links are actively managed by the Geode and Spring Dev communities:
 
In addition, here 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 above. However, there is a certain level of backward compatibility with GemFire / 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.12.3.02.3.0YesYes
9.9.12.0.92.0.14Partially recommendedIt 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.11.5.x1.5.xNoMight 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.
 
Note: If your GemFire cluster (Server Side) is running on a supported version, but your Client App is using an unsupported version of libraries, then it is likely you will have to upgrade to a supported version if you run into issues. For instance, while 9.1.1 clients are compatible with 9.9.1 servers, 9.1.1 clients are no longer fully supported. Hence, we always recommend getting all clients to a fully supported version.
  • Matching Client / Server Versions in Spring Apps
It is important to match versions when deploying to PAS / TAS (formerly known as PCF; Pivotal Cloud Foundry) using Tanzu GemFire (PCC). This is technically a GemFire restriction and has nothing to do with Spring.

In a nutshell, older clients can connect to and communicate with the same or newer servers. For example, as explained earlier, a 9.9 client can connect to and communicate with a 9.10 server. Clients can always connect to and communicate with a server having the same major.minor versions (e.g. a 9.10 client with a 9.10 server). The patch version in the major.minor.patch format should be irrelevant (e.g. a 9.10.2 client should still be able to connect to and communicate with a 9.10.0 server).

The opposite is not true. A newer client cannot connect to and communicate with an older server. For example, a 9.10 client cannot connect to and communicate with a 9.9 or an earlier version of a server.


Additional Information

Additionally, please also refer to the Product Snapshot pages to find the right version of VMware GemFire, VMware Tanzu GemFire [VMs] and Apache Geode.

Example: https://docs.pivotal.io/p-cloud-cache/1-12/product-snapshot.html