In memory, and persistent.
A sharded in-memory cache with LRU eviction and grace periods. Disk snapshots or a Redis backend carry the cache across restarts.
- RAM sharded cache
- DISK zstd snapshots
- REDIS optional backend
A self-hosted HTTP cache proxy written in Rust. Tag-based invalidation, request coalescing, stale serving and ESI. Configured in TOML or JSON, with Prometheus and OpenTelemetry built in.
| Area | Velocity Engine |
|---|---|
| Language | Rust |
| Protocols | HTTP/1.1, HTTP/2 and HTTP/3 (QUIC) |
| TLS | Built in, with mTLS and SNI |
| Configuration | TOML or JSON |
| Invalidation | Native cache tags, with soft and hard purge |
| Request coalescing | Duplicate in-flight requests collapse into one origin request |
| Stale serving | Grace period and stale-while-revalidate |
| ESI | Supported subset: include, remove and comment |
| Persistence | Disk snapshots or a Redis backend |
| Metrics | Prometheus and OpenTelemetry |
| Admin API | Purge, ban, config reload and cache inspection |
| Licence | €1,000/yr per production project, any number of Trident nodes |
● WE PUBLISH BENCHMARK NUMBERS ONLY WITH THEIR HARDWARE, WORKLOAD, TOOL AND FAIRNESS CAVEATS
A sharded in-memory cache with LRU eviction and grace periods. Disk snapshots or a Redis backend carry the cache across restarts.
Velocity invalidates by cache tag, not by URL pattern, with soft and hard purge.
Cache the page and keep dynamic fragments separate. Velocity processes a documented ESI subset: include, remove and comment.
Prometheus metrics and OpenTelemetry span export out of the box, for your own monitoring stack.
The request arrives over HTTP/1.1, HTTP/2 or HTTP/3. Declarative rules decide what is cacheable, from a config file your team reviews like code.
A hit is served straight from the sharded in-memory cache, without touching the origin.
On a miss, duplicate in-flight requests collapse into one origin request, so a cold cache does not stampede your backend.
Directors pick a backend by round robin, at random or by primary and standby fallback, with health checks.
The response is stored with its cache tags, compressed with gzip, Brotli or zstd.
A purge targets a cache tag, so updating one product does not mean flushing everything.
Warm the cache from a URL list before a node takes live traffic: start, watch, complete.
Validate a config before you ship it, then reload it without a restart.
Purge, ban, reload config, inspect the cache and manage backends from your deployment pipeline.
Both products are self-hosted, install from our package repositories and expose Prometheus metrics. One licence covers one production project, with any number of Trident nodes in front of it.