# NFT-LIM-02 — FDR size budget

**Task**: AZ-441_nft_lim_02_fdr_size
**Name**: 8 h-extrapolated FDR size ≤ 50 GB (AC-7.3)
**Description**: Implement NFT-LIM-02 — replay 30 min Derkachi at typical fixed rates; measure FDR-archive growth (`du -sh fdr-output`); extrapolate to 8 h linearly; assert `8h_extrapolated_size ≤ 50 GB`.
**Complexity**: 2 points
**Dependencies**: AZ-406, AZ-407
**Component**: Blackbox Tests / Resource Limit (epic AZ-262)
**Tracker**: AZ-441
**Epic**: AZ-262 (E-BBT)

## Problem

FDR size budget (AC-7.3) protects the on-board storage from being filled mid-flight. A 30 min run extrapolated to 8 h is the canonical measurement.

## Outcome

- pytest scenario at `e2e/tests/resource_limit/test_nft_lim_02_fdr_size.py`. Tier-1 OR Tier-2.
- 30 min Derkachi replay (loop the 8 min flight ~4×); per-minute `du -sh fdr-output` sampling.
- Linear extrapolation to 8 h: `extrapolated_size = (size_at_30min / 30) × (8 × 60)`.
- Assert `extrapolated_size ≤ 50 GB`.

## Scope

### Included
- 30 min replay (looped 8 min × 4).
- Per-minute size sampling.
- Linear extrapolation.

### Excluded
- Storage budget for tile cache + tiles → owned by NFT-LIM-03 (AZ-442).

## Acceptance Criteria

**AC-1: 30 min replay**
Given the test runs
Then the runner loops Derkachi for 30 min wall-clock.

**AC-2: extrapolation budget**
Given per-minute samples
Then `(size_at_30min / 30) × 480 ≤ 50 GB`.

**AC-3: parameterization**
Given conftest parameterization
Then the scenario runs per `(fc_adapter, vio_strategy)`.

## System Under Test Boundary

End-to-end through public boundaries.

- **Allowed**: `du -sh` of mounted volumes.
- **Forbidden**: importing FDR writer state.

## Document Dependencies

- `_docs/02_document/tests/resource-limit-tests.md` § NFT-LIM-02
- `_docs/02_document/tests/test-data.md` § Resource Limits (NFT-LIM-02 row)
