Fastly is a third party service we use for caching on the edge. It allows us to scale up and serve our millions of visitors quickly and efficiently.
Fastly offers many different configurations (conditions, snippets, etc.).
Snippets, in general, are "short blocks of VCL logic that can be included directly in your service configurations. They're ideal for adding small sections of code when you don't need more complex, specialized configurations that sometimes require custom VCL."
You can learn more about VCL snippets on Fastly's website
In the context of contributing, here's what you need to know about Fastly. In order for our servers to receive any sort of query string parameters in a request, they must first be marked as safe in Fastly. For example, if you're creating a new API endpoint or updating an existing one to accept new parameters, you'll need to update Fastly.
The reason we have a safe list of parameters in Fastly this way is so we don't
have to consider junk parameters when busting the caches. Check out our
to see examples of this.
Previously this was a manual process done by an internal team member. Now we do it programmatically using the Fastly gem.
We created a new file,
config/fastly/safe_params_list.vcl, to house all of the
safe params in Fastly.
If you need to update this list, simply update this file. It's as easy as that! This is a VCL file and you'll see a little Regex checking for a list of safe params.
Fastly is not setup for development.
If you have Fastly configured in Production, all Fastly configs are updated automatically when a production deploy goes out.
We do this by executing
bin/rails fastly:update_configs in our