# Context and Scope

# Business Context

Wikibase Repo business context diagram

Neighbour Description
Tools and Bots Applications and Bots (opens new window) interacting with the Repo's data programmatically
Wikibase Client Wikibase Clients are MediaWiki applications consuming the Wikibase Repository's data. In Wikidata's case these would include Wikipedia, Wiktionary and others.
Wikidata Query Service A SPARQL endpoint and graphical user interface for querying the Repo's data.

# Technical Context

Wikibase Repository is being developed as a set of MediaWiki extensions, but unlike Wikibase Client, they are not "plugins" that live inside MediaWiki, adding functionality to it. Instead, Wikibase Repository should be considered a system of its own, which is reflected in this diagram by not regarding MediaWiki as an external system to Wikibase Repository. See further details on this decision in the Solution Strategy section.

Wikibase Repo technical context diagram

TIP

Note that updates to the Query Service from the Repo will use either Recent Changes or the event stream via EventLogging and EventGate, not both. Wikidata uses the event stream, while most third party Wikibase setups use an updater that polls the Recent Changes page.

Component Description
Entity UI and Special Pages These are the main web user interfaces for viewing and editing Entity data
RdfDumpGenerator Generates an RDF file from the Repo's Entities
MW Recent Changes (opens new window) A MediaWiki page listing the most recent edits
MW EventLogging (opens new window) Backend-agnostic logs of structured event data
EventGate (opens new window) An EventLogging backend which in production is backed by Kafka
Repo DB The SQL database containing Entity data
Entity edit hooks Hooks that get triggered when an Entity is edited
UpdateRepo Updates Sitelinks when the sitelink target is moved or deleted on the Wikibase Client
API The Repo's actions on the MW Action API (opens new window) for editing Entities and reading Entity (meta) data