<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<div style="word-wrap:break-word">
<div>Hi Andrea.</div>
<div><br>
<div>
<div>On Dec 4, 2012, at 6:08 AM, Andrea Campi <<a href="mailto:andrea.campi@zephirworks.com">andrea.campi@zephirworks.com</a>></div>
<div> wrote:</div>
<br class="x_Apple-interchange-newline">
<blockquote type="cite">
<div class="x_gmail_extra"><br>
<div class="x_gmail_quote">On Tue, Dec 4, 2012 at 2:42 AM, Marcos Paulo Hack <span dir="ltr">
<<a href="mailto:marcos.hack@abril.com.br" target="_blank">marcos.hack@abril.com.br</a>></span> wrote:<br>
<blockquote class="x_gmail_quote" style="margin:0px 0px 0px 0.8ex; border-left-width:1px; border-left-color:rgb(204,204,204); border-left-style:solid; padding-left:1ex; position:static; z-index:auto">
<div style="word-wrap:break-word">Hi Andrea.
<div><br>
</div>
<div>As discussed in IRC channel, the grace mode should be used to implement the stale-while-revalidate directive, but there is no easy (or even viable) way to implement stale-if-error using VLC.</div>
<div></div>
</div>
</blockquote>
</div>
<br>
</div>
<div class="x_gmail_extra">Do logs exist for that conversation? I would be interested in the rationale for that.</div>
</blockquote>
<div><br>
</div>
<div>I couldn't find the channel log anywhere so I attached here.</div>
<br>
<blockquote type="cite">
<div class="x_gmail_extra">At face value it sounds like a useful implementation of stale-if-error can be done in VCL using saint mode.</div>
<div class="x_gmail_extra"><br>
</div>
<div class="x_gmail_extra">Other than that, I'll probably end up doing a VMOD anyway.</div>
</blockquote>
<div><br>
</div>
<div>The only problem with stale-while-revalidate using grace mode is that it isn't really asynchronous as discussed here [1]. So a VMOD implementation should be required to be full compliance with the RFC.</div>
<br>
<blockquote type="cite">
<div class="x_gmail_extra"> </div>
<div class="x_gmail_extra">Looking at the RFC some more, I have some questions. I'll probably get in touch with the editor of the RFC:</div>
<div class="x_gmail_extra"><br>
</div>
<div class="x_gmail_extra">* I am unclear on whether this is intended for reverse proxies that can be considered "part of the application" or if remote proxies and user agents are allowed to use it too.</div>
<div class="x_gmail_extra">The use of Cache-Control suggest the latter, but in that case I would like to see an implementation in a browser before I start sending these headers out in the wild. I realize user agents are free to show stale content anyway, but
 they usually don't.</div>
<div class="x_gmail_extra">Vice versa, it looks like these extensions may be useful also in Surrogate-Control, where we can easily ensure they never make it past Varnish. </div>
<div class="x_gmail_extra"><br>
</div>
<div class="x_gmail_extra">* I don't like stale-if-error in a request. I won't comment on its useful from the point of view of the user agent (other than saying it would make for a complex UI).</div>
<div class="x_gmail_extra">But from the point of view of Varnish, the only useful use case I can see is *reducing* the allowed staleness�since by definition it can't make it any longer than the time the object persists in the cache.</div>
<div class="x_gmail_extra">If I were to implement this, I would just ignore this in requests.</div>
<div class="x_gmail_extra"><br>
</div>
<div class="x_gmail_extra">Thoughts? I'll probably start working on this and edge-arch over the next week, so any reasoned opinion is appreciated as it may very well save me time ;)</div>
</blockquote>
<br>
</div>
<div>Good questions. You should talk to Mark Nottingham, indeed.</div>
<div><br>
</div>
<div>Just a side note: the folks of Traffic Server just finished their experimental implementation a month ago, maybe you can find some useful insights over there ;)</div>
<div><br>
</div>
<div>[1] <a href="https://www.varnish-cache.org/lists/pipermail/varnish-misc/2012-March/021800.html">https://www.varnish-cache.org/lists/pipermail/varnish-misc/2012-March/021800.html</a></div>
<div>[2] <a href="https://github.com/apache/trafficserver/tree/master/plugins/experimental/rfc5861">https://github.com/apache/trafficserver/tree/master/plugins/experimental/rfc5861</a></div>
<div><br>
</div>
<div>Regards.</div>
<div>Marcos</div>
<div><br>
</div>
</div>
</div>
<div style="word-wrap:break-word">
<div></div>
<div><br>
</div>
</div>
AVISO LEGAL: Esta mensagem e arquivos podem conter informacoes confidenciais e ou legalmente protegidas. 
Caso tenha recebido por engano, favor devolve-la ao remetente e elimina-la do seu sistema, nao divulgando ou utilizando a totalidade ou parte desta mensagem ou dos documentos a ela anexados.
</body>
</html>