I am looking around the options for Java application connecting to Coherence cluster..
These are the options I seem to have
1. Coherence Extend -
2. Make Java application as a cluster member with no storage
what are the pros/cons?
Here are my thought off the top of my head
*1. Use Extend if...*
<li> Your application is short lived - i.e. does not run for very long (minutes)
<li> Your application is not located close (in network terms) to the rest of the cluster
<li> Your client uses a different version of Coherence to the cluster (there are caveats around this)
<li> The client application is being developed by another team and its release cycle is not under your control
Good for short lived applications
Good for remotely located clients
Can be written in other languages than Java
Extend will perform slower than a cluster member as every request goes via the proxy server and then to the rest of the cluster.
If using an invocation service where you want to run invocables across the cluster it needs a two step process.
A badly written Extend client can perform requests which could take out the proxy server
*2. Use a cluster member if...*
<li> Your application runs for a long time - i.e. it is something like a web or application server
<li> Your application is well behaved - i.e. does not have big GC pauses. A very badly behaved cluster member can destabilize the rest of the cluster
<li> Your application is located close (in network terms) to the rest of the cluster
Faster than an Extend client
Needs to be stable
Needs to be located close to the rest of the cluster
Hope that helps as a start