Skip to content

Out of band tag handling #265

@dbu

Description

@dbu

the current tag handling is all about sending tags with the response and sending tag specific requests to the caching proxy. there is another concept for tagging: storing tag => urls ourselves (database, sqlite, redis, whatever) and send normal refresh / ban requests on invalidation. (see also the symfony con talk by @magnusnordlander)

how can we model this set up? should we add an isInline check to TagsInterface and a saveTags($requestUrl) in ResponseTagger? maybe rather have an InlineTagsInterface for the get header name and get header value methods?
or should we try to hide this away and magically save tags in ResponseTagger on getTagsHeaderValue?

the TagsInterface::invalidateTags looks fine to me. but the clients (Varnish/Nginx/Symfony) should maybe use composition for the functionality rather than implement the method inline, so you can plug either one that calls ban() on the client or the one that calls purge / refresh based on its stored tag to url map.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions