These comments relate to the downloadable pdf of Mastering EJB 3rd Edition on theServerSide
A couple of points struck me as either plain wrong or misinformation about Spring.
The section on Distributed Transactions indicates that EJB distributed transaction are more powerful/evolved than Spring plus POJO distributed transactions. Isn't it true that Spring can easily use the JTA API supplied by any J2EE container and thus support distributed transactions in the identical way that EJB supports distributed transactions?
“For instance, if distributed transactions are a must for your application, Spring + POJO would not work”
This is just just FUD isn't it? All you need is Spring + POJO in any J2EE application server e.g. Tomcat 4.x or Weblogic Express or any full blown EJB capable app server? The application server just has to provide the JTA support as required by the J2EE spec?
“Note: Remember that we recommend that you always keep the option of scaling your systems up, so when choosing the collocated approach, you should be prepared to switch to a distributed architecture when it becomes necessary.”
(This is not purely a Spring issue, although if valid it would be a strong argument against using Spring.) The implication seems to be that the only way to scale up is to distribute. Surely a collocated application can be scaled up more simply and almost always more effectively using more clustered servers running the duplicated colocated application and an appropriate load balancer?. I.E. NOT Distributing.