This page introduces part 4 of our
series on software caches in Java application servers.

In part 3, we showed how distributed
caches can be set up using peer-to-peer architectures.
One of the benefits of peer-to-peer is the low maintenance
overhead: Caches become part of the peer-to-peer cluster automatically,
the cluster is self-organizing, peers can join and leave the cluster any
time without any configuration.

However, data in peer-to-peer clusters is always stored on the peers:
The application servers become data stores at the same time.

In many cases, it will be more convenient to have dedicated storage instances
hosting the cached data, and to relieve the application servers from serving
the cache data. In those cases, client-server architectures should be used.


The following pages show how our example application
can be implemented with Ehcache, Hazelcast, and Infinispan in client-server mode: