In one of my recent projects I was implementing Enterprise level caching using Coherence . As you might be aware its written in Java and expects all the objects (that needs to be cached in it) in a Portable Object Format. This is to allow interoperability