Architecture Repository/Strategy/Goals and initiatives/Abstract Wikipedia Architecture

Wikimedia logo Wikimedia Architecture Repository
Practice | Strategy | Domain | Systems | Components

Abstract Wikipedia ArchitectureEdit

A library of code functions to support the Wikimedia projects and beyond, for everyone to call and re-use in the world's natural and programming languages

Last updated: 2021-04-23 by MSchottlender-WMF
Status: This is a draft, in process, of the architecture modeling and discussion for Abstract Wikipedia project.

Mission statementEdit

Enable everyone to collaboratively create and maintain a library of code functions to support the Wikimedia projects and beyond, for everyone to call and re-use in the world's natural and programming languages

Narratives (User stories)Edit

CapabilitiesEdit

This is a list of systems capabilities for the Abstract Wikipedia system. This list is still under consideration and is evolving as we continue to model and flesh out the system behavior. Click to see the artifact (LucidChart).

Contribute functionalityEdit

Capabilities that involve contribution like creating new objects and editing existing objects.

  • Contribute function definition
  • Translate function definition
  • Contribute function implementation
  • Accept valid implementation

Discuss functionalityEdit

Capabilities that involve community collaboration on policy and functionality.

  • Establish policy and norms
  • Standardize functionality
  • Finding missing required functionality
  • International global standardization

Test functionalityEdit

Capabilities that involve testing functions and quality assurance of the deliverable objects.

  • Contribute test cases
  • Test the correctness of a function

Serve functionalityEdit

Capabilities that involve serving the functions and objects in the system to an external consumer.

  • Invoke a function call
  • Update the result of a function call
  • Fetch external parameter data
  • Find a function
  • Embed function in a wiki page

Document functionalityEdit

We are still fleshing this capability out and what it means for the behavior of the system.

Architecture modelsEdit

This section includes the architectural models that are part of the discovery and model stages to define the architecture. This follows the Architecture practice, and involves collaborative modeling techniques like event sourcing. The goal of the process is to describe the domains of the system and model the architectural process. This work is ongoing.

Event modelsEdit

These models aim to understand how the system works, mark the pain points, and discover where to dive deeper.

Event storming - first versionEdit

We began here to understand the events that happen in the system. And to tease out pain points / dense areas where we want to dive deeper.

Prioritized modeling how “validation” works next.
Wikifunctions architecture modeling - Event Storming draft 1.png

Link to artifact (Mural)

Event storming - cleaner versionEdit

Layered the events, as we identified them, and agreed this was accurate (with many remaining questions.)
Wikifunctions architecture modeling - Event Storming draft 2.png
Link to artifact (Mural)

Adding functions event sourcingEdit

A model attempting to describe the actions and events that happen when a function is added to the system.
Wikifunctions architecture modeling - adding function workflow.png

Link to artifact (Mural)

Ideal function dashboard model ("Happy puppy model")Edit

This model was created from the view of an "ideal" workflow, to flush out behavior and interaction with the system.
Wikifunctions architecture modeling - Happy puppies dashboard.png

Link to artifact (Mural)

Contexts and events in high-level modelEdit

A model fleshing out the user actions, system capabilities, and events in the system.
Wikifunctions architecture modeling - contexts and events in high-level model.png

Link to artifact (Mural)

Capabilities and Flow modelsEdit

These are models showing the capabilities and/or flow of data through the system.

Flow/Capabilities model - first draftEdit

This was the first attempt to create a representation of the actions, flow, and events of the system.
Wikifunctions architecture modeling - Domain events model - Draft 1.pdf
Link to artifact (LucidChart)

Mission, Capabilities and Flow - second draftEdit

A second iteration on the flow and capabilities model, connecting them to the team's missions statement.
Wikifunctions architecture modeling - Domain events and capabilities model - draft 2.pdf

Link to artifact (LucidChart)

Structure modelsEdit

These are models describing a behavior of some system or several systems and their parts.

Top-level architectural modelEdit

This represents the top-level architecture of the system and its top-level services.
Top level architectural model

Wikifunctions Vue componentsEdit

Link to artifact (Mural)