The definition is as follows;
The principle of this Structure is to assist the programmer to create well modularized applications, that are easily extended and maintained. Qi4j will restrict access between Modules, so that code can only reach Composites and Objects in Modules (including itself) of the same or lower Layers.
Each Layer has to be declared which lower Layer(s) it uses, and it is not allowed that a lower Layer uses a higher Layer, i.e. cyclic references.