Synthetic objects

Poul-Henning Kamp phk at
Wed Jul 3 17:14:17 CEST 2013

In message <CABtDKm6zNsQE2Pb=nvJErKxYqwSwvkCo6vhjwGzH8OHZtEDABQ at>
, Dridi Boukelmoune writes:

>I'm not sure I understand the purpose, is it for a separations of:
>- true errors (from backends/varnish or hand made)
>- on-the-fly static responses (redirects, static files...)

Until now vcl_error{} has lived in sort of a no-mans-land between
the client side and the backend side of varnish.

What I'm proposing to do in VCL4 is to split it into
	vcl_error{} = client side
	vcl_backend_synth{} = backend side.

So from vcl_recv{} you'd go to vcl_error{} to deliver a one-off
synthetic response to a single client.  That object cannot and will
not be cached.

vcl_backend_synth{} on the other hand, will allow you to create objects
which _can_ be cached, although by default the will probably not be.

Poul-Henning Kamp       | UNIX since Zilog Zeus 3.20
phk at FreeBSD.ORG         | TCP/IP since RFC 956
FreeBSD committer       | BSD since 4.3-tahoe    
Never attribute to malice what can adequately be explained by incompetence.

More information about the varnish-dev mailing list