Contributing
Design principles
When a tradeoff comes up, these principles decide it. They're the reason Glacier behaves predictably even though prediction is, by nature, a guess.
Correctness over speed
A fast wrong answer is worse than a slow right one. Glacier will always fall through to the origin rather than serve data it can't confirm is fresh. Speed is the goal; correctness is the constraint.
Never the source of truth
The cache is disposable. Every entry must be reconstructable from your API or database, so clearing Glacier entirely changes performance, never behavior.
Bounded, visible overhead
Prediction costs extra fetches. That cost must be measurable (see Observability) and bounded by the confidence threshold — never unbounded, never hidden.
Predictable failure
When something goes wrong — a missed propagation, an evicted entry, an edge node that's behind — the result is a plain cache miss. There is no failure mode that returns stale or incorrect data.
Framework-agnostic core
The core knows nothing about React, Next, or HTTP. Everything framework-specific lives in an adapter. That keeps the core small and lets Glacier go anywhere JavaScript runs.
When in doubt, do less
A caching layer earns trust by being boring. New features are weighed against the cost of making Glacier harder to reason about — and that bar is intentionally high.