Чтобы уметь пересобирать на запрос все так же быстро как апач (а точнее в 2 раза быстрее).
А далее, времени на все это было очень мало. Поэтому код получился не очень. В итоге, спустя год получилось нормально все это оформить.
Из этого получился набор пакетов: github.com/VKCOM/gulp-por…, github.com/VKCOM/graph-ca…, github.com/VKCOM/graph-ca…
Первый распараллеливает почти любой пайплайн для gulp. Еще два нужны для персистентного кэша, но интеграцию в gulp еще не заопенсорсили.
Из всего этого я вынес два урока:
Нюансы масштабируются вместе с проектом, чем больше проект, тем большую роль играют мелочи.
Простые вещи в сложных проектах становятся сложными.
Это может казаться очевидным, но мы часто про это забываем.
Похожая ситуация происходит со многими вещами. Например, хранением онлайнов. Мы уже 2 месяца переписываем их.
Но из-за бешеной нагрузки (порядка 10 ^ 7 qps) и количества кода (и неявных вещей в нем) постоянно откатываемся.
Хотя в обычном проекте, это решилось бы использованием redis с ttl.