I am creating some Web Services that would have 2000 concurrent users. The services are offered for free and are hence expected to get a large user base. In the future it may be required to scale up to 50,000 users.There are already a few other questions that address the issue like - https://stackoverflow.com/questions/2567254/building-highly-scalable-web-servicesHowever my requirements differ from the question above.For example - My application does not have a user interface, so images, CSS, javascript are not an issue. It is in Java so suggestions like using HipHop to translate PHP to native code are useless.Hence I decided to ask my question separately.This is my project setup - Rest based Web services using Apache CXFHibernate 3.0 (With relevant optimizations like lazy loading and custom HQL for tune up)Tomcat 6.0MySql 5.5What are the best practices to abide by in order to make a Java based application scalable? 
How to design highly scalable web services in Java?
java;mysql;web services;scalability;cluster