Architecture:MediaWiki/Domain modules
This page is under construction Please help review and edit this page. |
The MediaWiki code base can be conceptually structured into domain modules listed below. As per version 1.35, the domain structure is preliminary, and domain boundaries are aspirational. That is, the domains described here are derived from pre-existing code, but do not represent existing boundaries. They are intended as a guide for creating new code and for improving existing code, and are expected to evolve over time.
Domain modules, in no specific order:
- content reuse domain (dumps, etc)
- customization domain (gadgets, site css, etc)
- curation domain (protect, delete, tag, etc)
- monitoring domain (technical)
- navigation domain (skin, etc)
- notification domain
- discovery domain (search)
- federation domain
- abuse prevention domain (block, protect, filter, etc)
- accountability domain (history, logs, contributions)
- content rendering domain
- access control domain (permissions, groups)
- content editing domain
- user management domain (create, rename, login)
- internationalization domain
- content representation domain
- maintenance domain
- ontology modeling domain (wikibase) (not in core)
- campaigns domain (banners and such) (not in core)
- communication domain (flow) (not in core)
Domain modules are orthogonal to technical layers: 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. Similarly, any pattern can be used in any domain.
Note that Manual:Extensions may fit into one of the domains above, or to a domain not present in MediaWiki core, or define a domain of their own.