mediawiki-extensions-Popups/doc/adr/0009-utilize-browser-caching.md
Baha dac21ea832 Document decision to cache requests
The date is the date T161284 was created.

Bug: T167093
Change-Id: Ia013b2c4dec611c72ee9ac798372fdbe40a19018
2017-06-22 07:12:49 +01:00

35 lines
1.3 KiB
Markdown

# 9. Utilize browser caching
Date: 05/24/2017
## Status
Accepted
## Context
We needed to make sure we're not overloading the servers with excessive
requests. We wanted to find a way to serve fresh resources while keeping
the back-end happy.
## Decision
Page Previews will leverage the browser's cache rather than maintaining its own.
We rely on Grade A browsers implementing HTTP caching correctly and their
vendors making accessing them as efficient as possible in order to avoid
incurring the incidental complexity of writing our own cache in JavaScript.
We'll set appropriate `Cache-Control` HTTP headers for both the MediaWiki API,
via [the `maxage` and `smaxage` main module parameters][0], and the RESTBase page
summary endpoint with the help of the Services team.
## Consequences
Resources fetched from the MediaWiki API [will be cached for 5 minutes in public
caches and the browsers's cache][1]. Unlike the MediaWiki API, resources fetched
from the RESTBase endpoint, [will be cached for 14 days in public caches][2].
[0]: https://www.mediawiki.org/wiki/API:Main_module#Parameters
[1]: https://github.com/wikimedia/mediawiki-extensions-Popups/blob/86075fba/src/gateway/mediawiki.js#L15
[2]: https://github.com/wikimedia/mediawiki-services-restbase-deploy/blob/9a86d4ce/scap/templates/config.yaml.j2#L100-L101