The purpose of this section is to elaborate on the impact of cube design decisions on the performance of ElegantJ BI. Before proceeding to discuss the recommended design practices, a few ElegantJ BI technical concepts should be understood. They relate to how cubes are created and stored, and to how the server processes the data. ElegantJ BI supports both real-time and cached cube architecture. There is also an option for aggregation in cache cubes, and user can choose if user wants to perform aggregation for cached cubes at cube level or not. Cached cubes will store indexed, pre-aggregated data in the cache files. For MDX and Real-time cubes, only metadata information is stored in ElegantJ BI. Building these data cubes is a key process. The design decisions made in building these cubes have significant impact on the performance of ElegantJ BI.