Requirements
Model functional and non‑functional requirements directly in Sruja DSL.
Requirements
Use requirement to capture functional, performance, security, and constraint requirements. Requirements are declared at the architecture root only.
Syntax
import { * } from 'sruja.ai/stdlib'
// Requirements using flat syntax
R1 = requirement functional "Support 10k concurrent users"
R2 = requirement performance "p95 < 200ms for /checkout"
R3 = requirement security "PII encrypted at rest"
R4 = requirement constraint "Only PostgreSQL managed service"
R5 = requirement nonfunctional "System must be maintainable"
view index {
include *
}
Guidance
- Keep requirement titles concise and testable.
- Reference requirements in ADRs and scenarios where relevant.
- Validate with
sruja lintto surface unmet or conflicting requirements. - Declarations at system/container/component level are deprecated and ignored by exporters and UI.
Related
scenariofor behavior walkthroughsslofor targets and windowsadrfor decision records