cache for a long time • Cache-‐control headers are often good enough • Examples: images, javascript, css, etc • Dynamic • Can’t cache at all – must go to origin • DSA and transport optimization is key for performance • Examples: logins, credit card transactions, Ajax, etc • Event-‐driven: • Static, but unpredictably • Cache-‐control headers are not good enough on their own • Examples: news stories, wiki pages, user comments, sports scores, etc
cache for a long time • Cache-‐control headers are often good enough • Examples: images, javascript, css, etc • Dynamic • Can’t cache at all – must go to origin • DSA and transport optimization is key for performance • Examples: logins, credit card transactions, Ajax, etc • Event-‐driven: • Static, but unpredictably • Cache-‐control headers are not good enough on their own • Examples: news stories, wiki pages, user comments, sports scores, etc
cache for a long time • Cache-‐control headers are often good enough • Examples: images, javascript, css, etc • Dynamic • Can’t cache at all – must go to origin • DSA and transport optimization is key for performance • Examples: logins, credit card transactions, Ajax, etc • Event-‐driven: • Static, but unpredictably • Cache-‐control headers are not good enough on their own • Examples: news stories, wiki pages, user comments, sports scores, etc
professional services • Caching efficiency has decreased • Not a lot of visibility • No real-‐time feedback • No real-‐time interfaces • APIs • Not enough real-‐time control • Removing content from the CDN • Configuration changes
cached if the CDN allows instantaneous programmatic purging • Cache normally • Purge when change trigger happens • Rinse and repeat! • Slow purge times unacceptable in this case • We need instant purging • Deterministic and predictable
edge • Example: VCL (Varnish Configuration Language) • Script-‐like configuration for functionality at the edge • Not exclusive to varnish • Any mechanism offered by the CDN to allow logic to be executed at the edge is good
caching… • …and uncaching • All tail sizes should perform comparably! • Control over functionality at the edge • Real time interfaces for programmability • Logic at the edge • Real-‐time visibility • Real-‐time analytics