Core Platform Team/Initiative/Multi-DC Echo Notification Storage/Epics, User Stories, and Requirements

Personas

 * User - a registered Wikimedia user
 * Infrequent User - a registered Wikimedia user who logs in "infrequently" (boundary of frequent/infrequent TBD)
 * Systems Adminstrator - a systems administrator

Engineering tasks
This is informational, based on Evan's understanding of what needs to be done.


 * Stand up a new Kask server (user stories 1, 2, 3)
 * Change Echo so that it can use a configured object store, with MainStash as a fallback (user story 4)
 * Configure WMF MediaWiki servers to use MultiWriteBagOStuff with Kask and Redis as a fallback so that it gradually migrates from Redis to Kask (user story 5)
 * Write and run a maintenance script to copy all or some Echo notification timestamps from Redis to Kask (user story 5)
 * Configure WMF MediaWiki servers to use RESTBagOStuff only, without the Redis fallback (user story 5)

The maintenance script is tricky. There are tens of millions of timestamps in Redis, so it will take a long time to run. It will only be run once. However, any timestamps older than when we start doing the multi-write configuration will otherwise be lost when we go to the Kask-only configuration. It's important for us to figure out how far we need to go back, and what happens if there's no data for a user who hasn't been back to Wikipedia in a year or two.