ADR-005: TYPO3 Caching Framework Integration
- Status
-
Accepted (amended; current contract below)
- Date
-
2024-03
- Amended
-
2026-11-07 by ADR-249
- Authors
-
Netresearch DTT GmbH
Note
Current contract (reviewed 2026-11-07): Plain configuration answers can be cached through an opt-in TTL, subject to privacy and path restrictions. Embedding callers can opt out. See Caching; temperature is not the answer-cache switch.
The decision text below records its original context; the linked successor explains the changed contract.
Context
LLM API calls are:
- Expensive (cost per token).
- Relatively slow (network latency).
- Often deterministic (embeddings, some completions).
Decision
Integrate with TYPO3's caching framework:
- Cache identifier:
nrllm_.responses - No backend specified — TYPO3 uses the instance's default cache backend (respects Redis/Valkey/Memcached).
- Cache keys based on: provider + model + input hash.
- TTL: 3600s default (configurable).
- Cache group:
nrllm(flush viacache:).flush -- group=nrllm
Caching strategy:
- Always cache: Embeddings (deterministic).
- Optional cache: Completions with temperature=0.
- Never cache: Streaming, tool calls, high temperature.
Consequences
Positive:
- ●● Reduced API costs.
- ●● Faster responses for cached content.
- ● Follows TYPO3 patterns.
- ◐ Configurable per deployment.
Negative:
- ✕ Cache invalidation complexity.
- ◑ Storage requirements.
- ✕ Stale responses if TTL too long.
Net Score: +4.5 (Positive impact - significant cost/performance gains with manageable cache complexity)