"You have to architect the application to manage horizontal scalability (i.e. over a cluster), otherwise the application quickly gets bogged down in one of many potential limitations to scalability,like cache synchronization, session distribution, etc."
"Use the Queue methods rather than Collection ones, e.g. Queue.offer() will return false if the addition fails, while Collection.add() fails by throwing an exception."