I fully aggree with Marc Fleury about the tremendeous overhead created carelessly by forcing (sometimes hidden) serializations over and over between components. I now tried to figure out, how to design a JBoss appserver in a way that minimizes this overhead. I decided to use jetty in favour of my favorite tomcat for this reason (though at present that's merely a guess). The next question is of course the persistent storage. I understand that JCA has been used as a more direct interface to the datastore rather than JDBC, particularly if the database offers XA. This again works only if there is no hidden serialization in some layer(s). Are there any benchmarks or other hints, that show what works best? I also wonder about the bundled Hypersonic engine. This would be handy for some simple DB schemas. I found it very fast indeed, however I cannot see a point in using a in-memory database to achieve persistence. Is it also very fast when used in I/O mode and has it really a fast JCA path to its tables? I searched all documentations but found little hints to these structural questions. I feel it would be a pity to loose the superb performace of Jboss by a poor architecture. Thus I want to work quite a bit on this line. Can you share your thoughts or experience?