Architecture:MediaWiki/Domain modules

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:


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.


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.