Running your application in a clustered mode introduces some constraints. They aren't cloud-specific, but developers may not be familiar with them.
The main issue with clustering is state. As your application runs on a set of nodes, and you have subsequent requests from user to build a conversation, a distinct node may handle some of them. How can node B access the shopping cart that the customer has populated when server A handled his first request?
Cloud evangelists suggest the idea of being stateless. A stateless world would be cool for software architects as this would make distributed software far simpler. There are many ways the state can be managed in an application.
Using the API HttpSession ...