ORES/Components

DRAFT description of the ORES system and components

Change propagation
When a new revision is encountered in the  Kafka change propagation stream, we tickle the revscoring API to pre-cache scores for that revision, once for each revscoring model we support on that wiki:

https://gerrit.wikimedia.org/r/#/c/295576/6/modules/changeprop/templates/config.yaml.erb

(FIXME: Where does that configuration live now?)

ORES API
See online documentation: https://ores.wikimedia.org/. The ORES API is a container for multiple machine learning models that take article revisions as their input. URLs are RESTful, and will always return the same results until the model is updated.

Celery
TODO: Explain what the celery layer does.

Refuses to create new jobs once the queue size goes above a configures.

TODO: Something magical in here prevents recalculating scores when simultaneous requests arrive for the same data.

Revscoring engine
Read more about the various machine learning models on the metawiki ORES page.

MediaWiki Extension:ORES
This frontend displays revscoring data on the Special:Contributions and Special:RecentChanges pages. It fetches scores from the ORES API, and caches them in a mediawiki database for efficient access.

Varnish
Unlike most WMF services, we don't use a Varnish front-end cache.

Redis
The backend stores scores in Redis as they are calculated.

MediaWiki database
As we pull scores from the ORES API,