Architecture:MediaWiki/Technical layers

The MediaWiki code base can be conceptually structured into the layers listed below. As per version 1.35, this layering is aspirational. That is, the layering described here does not describe current reality, but is intended as a guide for creating new code and for improving existing code.

Layers:

Layers are orthogonal to domain modules: each domain module may have code in some or all of the layers. Each bit of code belongs to a layer and a domain module. For patterns, the relationship is somewhat different: while some patterns may be used in any layer, many are confined to only some layers.

Note that Extensions do not have a location in this layering. Extensions align with domains, and as such are structured orthogonal to the layers: that is, each extension is structured into the layers listed above.

See also:
 * Domain modules
 * Pattern language
 * Subsystems
 * Flows
 * Practices