hanakin wrote: ↑
Wed Mar 20, 2019 5:48 pm
Had a few more follow-up questions for sustainability.
what is the turn around timeline/process for updating a library?
Lets say mdi gets really active and starts pushing out icon updates once a month or more? What is the update process? How automated is it? does it require someone creating an issue?
What is the impact on the cahcing in this scenario?
Basically trying to understand from a support standpoint if we used this and a user tries to use and icon that is too new, what the metrics would be?
Update script is ran few times a day, so whenever any library pushes update, iconify/json repository is updated. From there GitHub hooks are used to notify all servers that there is update, which triggers update scripts and all servers get updated within 2 minutes. Servers are updated without any downtime. So its almost fully automated. By "almost" I mean it can be used as cron job, it requires no interaction, but because I'm still messing with that script I run it from my computer instead of server.
As for caching, it gets a bit complicated. There are several layers of icon caching.
First is session storage where all icons are stored during session. It is cleared when browser is closed.
Second is local storage, but it is disabled by default because it requires cookie consent. However its not really needed. If enabled, it invalidates when Iconify script is updated.
Third is browser caching of API requests. Its basic HTTP caching. Expiration is set to 8 days.
Each Iconify update invalidates session and local storage cache.
If any existing icon is updated (as in changed, not added), in worst case it might take up to 8 days for users to see new icon. If new icons are added, it takes anything from minutes to a day to see new icon (upper limit will be 3 hours when I'll change to cron job).