Point at your IaC
Start with your IaC project. dryrun parses resources, modules, and dependencies — no architecture essay required.
IaC architecture linter
Point dryrun at your IaC.
Find production architecture risks before they hit prod.
Parse real resources, run codified production rules, and get evidence-backed findings with follow-up verification.
$ dryrun validate ./infrastructure
Parsing 23 resources across 4 modules...
[CRITICAL] rule:rds-no-proxy
Lambda "api-handler" connects directly to RDS "main-db"
[WARNING] rule:sqs-no-dlq
Queue "order-events" has no dead-letter queue configured
Cross-verify: what happens to DB connections at 500 concurrent Lambdas?
Report saved to findings.json
31 of 36 rules passed
Lambda "api-handler" → RDS "main-db" with no RDS Proxy in between.
What happens when Lambda concurrency spikes to 500?
Add RDS Proxy for connection pooling with read/write split and connection limits.
Doesn't stop at findings
Lambda → RDS without proxy
What happens when concurrency spikes to 500?
Recommended architecture change with evidence attached.
Rule library
Rules encode real production failure patterns — the things experienced engineers catch in design review, not generic misconfiguration scans.
rule:rds-no-proxy
rule:sqs-no-dlq
rule:nat-cost-sprawl
rule:lambda-timeout-mismatch
rule:missing-autoscale
rule:public-rds-endpoint
The gap
Rules target production architecture correctness: connection exhaustion, missing DLQs, NAT cost traps, concurrency assumptions — not just syntax or policy violations.
Rules encode hard-learned patterns from real AWS architectures. The LLM explains and cross-verifies — it does not decide.
Each rule triggers follow-up questions that interrogate your assumptions under load, failure, and scale — like a senior design review.
How it works
Start with your IaC project. dryrun parses resources, modules, and dependencies — no architecture essay required.
Codified rules check for known failure patterns: missing DLQs, direct Lambda-to-RDS, public exposure, cost traps, and more.
Each finding triggers targeted follow-ups — what happens at 500 concurrent Lambdas? Where does backpressure go? Will this hold under scale?
Approved decisions can export as ADR drafts — documentation as proof of value, not the primary workflow.
Rule packs
Direct Lambda access, missing proxy, no read replicas, public subnets, connection limit risks.
Missing DLQs, no retry policy, ordering assumptions, poison message handling, visibility timeouts.
Public RDS endpoints, open security groups, NAT Gateway sprawl, missing VPC endpoints.
Timeout mismatches, missing autoscaling, cold start impact, container resource limits.
Over-scoped roles, hardcoded credentials, missing encryption, audit trail gaps.
NAT per-AZ duplication, unbounded log retention, oversized instances, missing lifecycle policies.
CLI first
Run rule checks from your terminal. Validate IaC, review findings with evidence, and cross-verify flagged decisions before they ship.
$ npx dryrun
$ dryrun validate ./infrastructure
$ dryrun cross-verify --from findings.json
Optional: export approved decisions as ADR drafts with dryrun adr generate.
Early access
Join the early list for production architecture rule checks and cross-verification. No spam — only product updates.