24 Introduction to gRPC

Coherence gRPC for Java allows Java applications to access Coherence clustered services, including data, data events, and data processing from outside the Coherence cluster. Typical uses for Java gRPC clients include desktop and Web applications that require access to remote Coherence resources.

This provides an alternative to using Coherence*Extend when writing client applications.

Note:

The Coherence gRPC client and Coherence*Extend client feature sets do not match exactly; some functionality in Coherence gRPC is not available in Coherence*Extend and vice-versa.

The Coherence gRPC for Java library connects to a Coherence clustered service instance running within the Coherence cluster using a high performance gRPC based communication layer. This library sends all client requests to the Coherence clustered gRPC proxy service which, in turn, responds to client requests by delegating to an actual Coherence clustered service (for example, a partitioned cache service).

Like cache clients that are members of the cluster, Java gRPC clients use the Session API call to retrieve resources such as NamedMap, NamedCache, etc. After it is obtained, a client accesses these resources in the same way as it would if it were part of the Coherence cluster. The fact that operations on Coherence resources are being sent to a remote cluster node (over gRPC) is completely transparent to the client application.

Coherence gRPC has two parts, the coherence-grpc-proxy module and the coherence-java-client module. The coherence-grpc-proxy module provides the server-side gRPC proxy and the coherence-java-client module provides the gRPC client. Other non-java Coherence clients that use the Coherence gRPC protocol are also available.