edit: fixed a typo
edit: fixed a typo
*in the web sense - don’t want to offend any of the real real-time people :-)
These templates can pull information in from outside of the specific Wikipedia instance, like retrieving properties from Wikidata.
Edit: I guess I was wrong, seems like lua modules are only evaluated when there's a change to a page incorporating them:
>The programs are run only when the page is "parsed" (when it or a page it incorporates is changed or previewed), not every time you view the output.
https://en.wiktionary.org/wiki/a
>Lua error: not enough memory
appears on the page 250 times.
Frontend cache gets skipped if you have a session cookie (logged in or have been logged in recently or made an edit logged out). So if you edit something, subsequent views are not hitting the static site, so you would notice if it was down
You are right that technically it's SSR, but that's not what's relevant here.
That said, i think they do now use cloudflate's bgp based magic transport ddos protection product to help against ddos
Largely static? There are edits happening all the time.
> Wikipedia develops at a rate of over 1.9 edits per second, performed by editors from all over the world. Currently, the English Wikipedia includes 6,167,378 articles and it averages 598 new articles per day.
Doesn't seem to be much, to be honest.
There generally is a bit of a long tail effect. Popular pages get edited a lot, but they also get viewed a lot. It can be expensive when everyone is viewing and editing the same page (Micheal Jackson's death is a famous example that caused downtime, although changes were made to make things more robust so it wouldn't happen again)
If the actual servers go down all that means is that wikipedia is read only and the caching reverse proxies that also receive a push update during modifications would just serve the last version of pages. (except anybody with login cookies, valid or not, would get 500 responses)
This is a much easier service to reliably engineer than something like Twitter. For SRE purposes, Wikipedia is mostly static.
Even something as simple as HN probably have much much lower value of "usefulness if the service is served completely static from caches", due to upvotes and comments. If the front-page and comments stayed static both during breakfast and lunch, my WFH routine would sadly be impacted...
On the contrary, users get very angry if stuff isn't fresh.
Someone changes trump article to say he is a poopy head. If that gets fixed in 2 seconds, no big deal. If that gets cached, and the edit to fix it doesnt hit the caches for a couple hours, wikipedia is now the top story on CNN.
Generally wikipedia caches are expected to be updated within seconds or minutes at most.
I think my larger points still stand. In comparison, almost all other services at the scale of wikipedia have critical almost-realtime components, and is almost useless without the possibility to authenticate users (which can't really be cached).
Not saying that the people who manage to keep Wikipedia so stable are doing an easy task, just that it's very different from almost all other things on the web.
Assuming things havent changed, each varnish server listens for purges via multicast udp.
You can see per-server stats on purges happening here:
The opposite of static would be an e-commerce site where you can't take transactions if the backend is down and you really don't want to oversell your inventory, so you need the inventory management system to be up for the site to "work".
Also, the average wikipedia page probably isn't edited very often.