Crowkis vs Upstash: pay-per-request caching meets the request firehose
Serverless Redis with per-request pricing is elegant for occasional workloads. An LLM cache is the opposite of an occasional workload.
Upstash made serverless Redis real: HTTP-friendly, globally replicated, billed per request. For a cron job's state or a low-traffic app's sessions, lovely. But an LLM cache is interrogated on every single user message — it is definitionally your highest-request component. Metered pricing puts your savings layer on a treadmill that speeds up exactly when the savings grow.
Underneath the billing, it's Redis semantics: exact keys, byte matching. The paraphrase problem arrives intact, the hit rate stays near zero on language traffic, and you're now paying per request for the misses too. The economics compound in precisely the wrong direction.
Always-called components want fixed costs.
Crowkis flips both axes at once: flat cost (free Community, per-cluster Enterprise — the lookup volume is irrelevant) and semantic matching with safety gates, so the lookups actually land. Self-hosted in one container, your question corpus stays home, and the millionth probe costs what the first did.
The bottom line
Serverless pricing rewards components you rarely call. Caches are components you always call. Match the billing model to the call pattern, and the conclusion writes itself.