- Name of tool/project: Kask
- Project home page: https://www.mediawiki.org/wiki/Kask
- Name of team requesting review: Core Platform Team
- Primary contact: @Eevans
- Target date for deployment: May 31, 2019
- Link to code repository / patchset: mediawiki/services/kask
Description of the tool/project
Kask is a multi-master replicated opaque key-value data store.
Description of how the tool will be used at WMF
Kask will be deployed for multi-datacenter storage/access of MediaWiki user sessions.
Kask is implemented in Go, and sources its code dependencies entirely from what is packaged in Debian Stretch. It's direct dependencies are (as Debian package name/versions):
- golang 2:1.7~5
- golang-github-gocql-gocql-dev 0.0~git20171009.0.2416cf3-3~bpo9+1
- golang-gopkg-yaml.v2-dev 0.0+git20160928.0.a5b47d3-2
- golang-github-prometheus-client-golang-dev 0.8.0-1
Additionally, Kask uses Apache Cassandra (v3.11.2 or higher) for underlying storage.
Has this project been reviewed before?
Working test environment
Since Kask relies on Debian for dependency management, it is easiest to build it in a Debian Stretch environment (host, container, chroot, etc). Build instructions can be found in the project README.
Built versions of Kask can be found as Docker images in the WMF registry.
Finally, a running installation exists on deployment-sessionstore01.deployment-prep.eqiad.wmflabs, (http://deployment-sessionstore01.deployment-prep.eqiad.wmflabs:8080/sessions/v1).