27 lines
1.4 KiB
Markdown
27 lines
1.4 KiB
Markdown
## ADDED Requirements
|
|
|
|
### Requirement: Cache Publish MUST Preserve Previous Readable Snapshot on Failure
|
|
When refreshing full-table cache payloads, the system MUST avoid exposing partially published states to readers.
|
|
|
|
#### Scenario: Publish fails after payload serialization
|
|
- **WHEN** a cache refresh has prepared new payload but publish operation fails
|
|
- **THEN** previously published cache keys MUST remain readable and metadata MUST remain consistent with old snapshot
|
|
|
|
#### Scenario: Publish succeeds
|
|
- **WHEN** publish operation completes successfully
|
|
- **THEN** data payload and metadata keys MUST be visible as one coherent new snapshot
|
|
|
|
### Requirement: Process-Level Cache Slow Path SHALL Minimize Lock Hold Time
|
|
Large payload parsing MUST NOT happen inside long-held process cache locks.
|
|
|
|
#### Scenario: Cache miss under concurrent requests
|
|
- **WHEN** multiple requests hit process cache miss
|
|
- **THEN** parsing work SHALL happen outside lock-protected mutation section, and lock scope SHALL be limited to consistency check + commit
|
|
|
|
### Requirement: Process-Level Cache Policies MUST Stay Consistent Across Services
|
|
All service-local process caches MUST support bounded capacity with deterministic eviction.
|
|
|
|
#### Scenario: Realtime equipment cache growth
|
|
- **WHEN** realtime equipment process cache reaches configured capacity
|
|
- **THEN** entries MUST be evicted according to deterministic LRU behavior
|