Running in a cloud provider would be relatively straightforward, though I believe that clustering would be the most challenging since, for example, Amazon does not provide multicast. There are quite a few examples and documentation of other JGroups-based systems running in these environments (see Torquebox), so it's definitely possible.
The next level of cloud integration is if you want to store your content in a cloud-based service. There are three aspects of this:
- Infinispan cache store - Generally, each ModeShape repository stores all its content (except for federated content) inside an Infinispan cache, which uses a variety of cache stores to talk to the actual persistence mechanism. Some of these will work inside a cloud service, including Infinispan's JClouds cache store. There may even be others out there. You can always implement your own, too.
- Binary store - ModeShape stores binary content inside a binary store, and there are multiple options here, too, including Infinispan, Cassandra or a JDBC database (among others). But nothing out of the box that directly works with any cloud providers. (See MODE-1446 for a proposed S3 binary store implementation.)
- Federation - Another option is to access some content in a cloud-based store (other than where the main repository content is stored) through a federated connector. Again, nothing out-of-the-box, though an S3 connector is on the roadmap (see MODE-1317).