There are two versions of the eXo platform distribution - the express and the enterprise editions. The choice of one of those depends on your requirements and resources. Both versions are based on the same architecture that is composed of several modules.
The services container. It provides an Inversion of Control (IoC) mechanism to allow efficient services dependencies resolutions. Each middleware component - such as database or Enterprise JavaBean (EJB) access service - is then abstracted and separated from its implementation. This powerfull arcitecture allows a loose coupling stack of components which increase the maintanability of the whole platform.