Developing cacheable backend applications
When you develop an app, making it perform well is essential. But when your app becomes successful, it’s equally important to make sure that your backend remains fast under all traffic circumstances.
Quite often this need for scalability is translated into scaling the infrastructure: either scaling up, or scaling out. Although it has an immediate impact, it’s not the ideal solution from an economical standpoint, and it adds complexity.
Why not focus on reducing the impact of your code on systems, rather than extending these systems? Why do we re-compute every single result if the data hasn’t changed, instead of caching these computed results?
In this presentation, Thijs will explain how reverse caching proxies can take a way a lot of stress from your infrastructure and how you can leverage the power of HTTP to control cachin behavior in your code.
Topics that will be covered:
- The syntax of cache-control headers
- How to use cache-control headers to control whether or not to cache
- How to use cache-control headers to control the time to live of our cached objects
- How to deal with cookies and authentication
- How to separate stateful from stateless content
- How to boost your performance by adding a reverse cache proxy like VarnishHow to invalidate your cache
- How to leverage Content Delivery Networks
- How to create cache variations
- How to reduce backend load and bandwidth by performing conditional HTTP requests
The goal is to empower developers to write cacheable code that is portable and avoids vendor lock-in by applying industry-wide conventions.