Here are my two cents worth..
However good the transformation engine is,
you should also consider implementing some strategies such as
static publishing - apply the transformation offline and keep the presentable document(s) ready instead of invoking the tranformation on demand. Results caching - store output of transformations for reuse. xml monitoring - before invoking the transformation, see if the underlying data( xml ) has really changed. If not, simply return a cached page. Use validation only if necessary. (this one is tough) - implement incremental transformations - instead of applying transformation for the entire xml document, do so only for the document fragment that has changed. This requires you to monitor changes and some ability to compare xml documents in memory to extract only changed fragments. Using JDOM and some DOM event listeners will help you do the groundwork for this feature. Cheers!