The introduction of HotRod protocol and RemoteCacheLoader opened the way for a set of new architectures in Infinispan, where layers of caches can exists and interact. This article takes a look at such an layered architecture.
HotRod is a binary protocol defined for exposing an Infinispan cluster as an caching server to multiple platforms. It has support for load balancing and smart routing.
RemoteCacheLoader is a cache loader that knows how to read/store data in a remote infinispan cluster. For that it makes use of the java hotrod client.
The diagram above shows an Infinispan server cluster running 3 hotrod servers. This cluster is accessed remotely, through HotRod, by another infinispan cluster: client cluster (upper part of the image). All the nodes in the server cluster are configured to run HotRod servers, so requests from remote loader are being balanced between them. The client cluster is configured with invalidation as cluster mode and a RemoteCacheLoader to acess data stored in the server cluster. Application data is held on the server cluster which runs in DIST mode for scalability.
In this deployment the client code, running in same address space with the client cluster, holds all its data in the server cluster. Client cluster acts as an near-cache for frequently accessed entries.
On the documentation main page:
- cache loaders are described in the "Cache loaders" section
- Hotrod's specification, server and client in the "Hot Rod" section