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)
Overview of Domain Modules
[edit]Each domain serves a specific purpose and contributes to the overall functionality and user experience of the system. The domains are categorized based on their roles, such as content management, user interaction, and system monitoring, among others.
Domain Modules
[edit]Content Reuse Domain
[edit]This domain focuses on the reuse of content across different areas of the system. It includes functionalities for managing content dumps and ensuring that existing content can be efficiently utilized in various contexts.
Customization Domain
[edit]The customization domain allows users to personalize their experience by modifying site elements such as gadgets and CSS styles. This enhances user engagement and satisfaction.
Curation Domain
[edit]In the curation domain, users can manage content through actions like protecting, deleting, and tagging. This ensures that the content remains relevant and organized.
Monitoring Domain
[edit]The monitoring domain is dedicated to technical oversight, providing tools and metrics to track system performance and user interactions.
Navigation Domain
[edit]This domain deals with the visual and functional aspects of navigation within the system, including the design of skins and layout structures.
Notification Domain
[edit]The notification domain manages alerts and updates for users, ensuring they are informed about relevant activities and changes within the system.
Discovery Domain
[edit]The discovery domain facilitates search functionalities, allowing users to find content and resources efficiently.
Federation Domain
[edit]This domain enables the integration and interaction between different systems or platforms, promoting interoperability and data sharing.
Abuse Prevention Domain
[edit]The abuse prevention domain implements measures to block, protect, and filter inappropriate content or behavior, ensuring a safe environment for users.
Accountability Domain
[edit]In the accountability domain, the system maintains a history of actions, logs, and contributions, promoting transparency and traceability.
Content Rendering Domain
[edit]This domain is responsible for the presentation of content, ensuring that it is displayed correctly and attractively to users.
Access Control Domain
[edit]The access control domain manages permissions and user groups, ensuring that users have appropriate access to different parts of the system.
Content Editing Domain
[edit]This domain provides tools for users to create and modify content, enhancing collaboration and content quality.
User Management Domain
[edit]The user management domain encompasses functionalities for creating, renaming, and logging in users, facilitating user account management.
Internationalization Domain
[edit]This domain focuses on adapting the system for different languages and cultural contexts, ensuring a global reach.
Content Representation Domain
[edit]The content representation domain deals with how content is structured and presented, ensuring clarity and accessibility.
Maintenance Domain
[edit]This domain is responsible for the upkeep and performance optimization of the system, ensuring it runs smoothly.
Ontology Modeling Domain (Wikibase) (Not in Core)
[edit]This domain involves the modeling of knowledge structures and relationships, typically using tools like Wikibase, although it is not part of the core system.
Campaigns Domain (Banners and Such) (Not in Core)
[edit]The campaigns domain manages promotional content such as banners, allowing for targeted marketing efforts, though it is not included in the core functionalities.
Communication Domain (Flow) (Not in Core)
[edit]This domain focuses on the flow of communication within the system, facilitating interactions among users, but is not part of the core architecture.
Conclusion
[edit]The outlined domain modules provide a structured approach to managing various aspects of a system. By understanding and implementing these domains, developers and system architects can create a more robust and user-friendly environment. Each domain plays a crucial role in enhancing functionality, user experience, and system integrity.
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.