Varnish Cache

Cachevarnish

HTTP reverse proxy cache holding objects in memory for a default 120 second TTL.

Provider
default
Kind
Cache
Category
Data
Properties · 4 set by this component
propertytypevaluesrequiredkind defaultthis component
evictionPolicyenumlru | lfu | ttl | noneno—▸ lru
hashing · advancedenumnone | consistentnononeinherited
invalidationenumttl | event | nonenottl▸ ttl
managedboolean—nofalseinherited
materialised · advancedboolean—nofalseinherited
persistenceboolean—nofalse▸ false
readBarrier · advancedboolean—nofalseinherited
replicationenumnone | single-az | multi-az | multi-regionnononeinherited
shardsinteger—no—inherited
storageBackend · component propertyenummalloc | filenomallocinherited
storageSizeMb · component propertyinteger—no100inherited
structure · advancedenumkey-value | bloom-filter | hash-set | sorted-setnokey-valueinherited
tier · advancedenumcore | edgenocoreinherited
ttlJitter · advancedboolean—nofalseinherited
ttlSecondsinteger—no—▸ 120
usedAsPrimaryStore · advancedboolean—nofalseinherited
Rules that apply · 3

Every rule whose selector covers this component's kind or its category. Whether a rule fires depends on the design: its properties, its edges and its groups.

cache-as-primary-store-without-persistence

This cache is the only copy of its data and has persistence turned off. A restart loses the data outright.

  • — all of these hold:
  • — the node's `usedAsPrimaryStore` is true
  • — the node's `persistence` is false
cache-missing-eviction-policy

A cache with no declared eviction policy inherits whatever the vendor chose, and most vendors default to evicting nothing. The cache fills up and then starts refusing writes.

  • — any of these hold:
  • — the node's `evictionPolicy` has no value
  • — the node's `evictionPolicy` is "none"
materialised-cache-without-rebuild-path

A cache holding materialised views has to be rebuildable from a durable store or a worker. With nothing feeding it, a cold cache is a permanent gap rather than a slow start.

  • — all of these hold:
  • — the node's `materialised` is true
  • — this does not hold:
  • — the node has at least one incoming edge from a sql-database, nosql-database, worker or stream
Use it in a design
nodes:
  - { id: "varnish", component: "varnish" }
Other Cache products · 36
Source
# yaml-language-server: $schema=../../schema/component.schema.json
# Varnish Cache: HTTP reverse proxy cache. The default malloc store holds 100 MB in memory only and
# nukes least recently used objects when full, and default_ttl caches a response for 120 seconds
# ("Storage backends", "varnishd").
schemaVersion: "1"
type: "component"
id: "varnish"
kind: "cache"
provider: "default"
docs: "https://www.varnish.org/docs/users-guide/storage-backends.html"
defaults:
  persistence: false
  evictionPolicy: "lru"
  ttlSeconds: 120
  invalidation: "ttl"
properties:
  storageBackend:
    type: "enum"
    values: ["malloc", "file"]
    default: "malloc"
  storageSizeMb:
    type: "integer"
    default: 100

The same page as markdown, for an agent: /catalogue/components/varnish.md