The complete project is strictly separation into different modules and layers of abstraction. This design principle is supported by the usage of different namespaces for different modules. The result of these efforts is a clearer design and less dependencies between the classes. It is even possible to use only some parts of Project Magnum without being forced to import all other modules.

Of course the project is not free of dependencies, but they are well defined and only in one direction, that is is only allowed for higher-level modules to depend on lower level ones, not the other way round.

Currently Project Magnum has the following modules: