Can someone please help me by providing a rough idea of what the different levels of throughput in a J2EE system can be considered to be? I know this is tremendously complex, but let's just say someone has a paintball gun pointed at your arm and gives you a minute to explain it on the back of a cocktail napkin. Something like: up to x transactions per second is considered LOW up to y transactions per second is considered MEDIUM up to y transactions per second is considered HIGH In regards to this basic scheme, at what level do you have to move to a distributed system with load balancing? Again, I know that the combinations of software implementations and hardware are infinite, but lets just say very ballpark, roughest case. I have worked on J2EE applications that used EJB, but my role dealt with higher software layers so I did not have to concern myself with this. I have also worked on smaller J2EE projects that didn't have a huge number of transactions and and didn't warrant being distributed, so I would like to start filling in the gaps in my knowledge on this topic. I would also appreciate any hints to good books dealing with the topic. However, from my research so far I have not come across any practical information like the numbers I asked for above, although I have found plenty to read about techniques like clustering and caching. Thanks for any help!