# Design-review checklist — managed primitive before the custom box

Use with the article [Before you build it](https://www.factualminds.com/blog/aws-managed-primitives-before-custom-infrastructure/). One custom box per row. An empty stop-rule means the row is unfinished. Do not approve a build from an unfinished row.

Classic Lambda timeout is 900 seconds. Lambda Managed Instances extend asynchronous work and event-source mappings to 5,400 seconds, except Amazon MQ and Amazon DocumentDB. Source: the Lambda timeout page. This sheet does not pick compute.

| Custom box | Primitive | URL (fill) | Stop-rule is true? (keep the custom box) | Decision: delete / keep / hold |
| --- | --- | --- | --- | --- |
| Cron host or Task Scheduler | EventBridge Scheduler | EventBridge patterns post | Work must branch, read a database, or fan out. One-call Scheduler spoke is not published. | |
| Lambda that only forwards a stream | EventBridge Pipes | Event-driven pattern | Enrichment is specific to this service | |
| Workflow status table | Step Functions | Step Functions patterns post | Single API call, no retries or waits | |
| Hand-rolled Iceberg maintenance | S3 Tables | S3 Tables reference | Table is not Iceberg on S3 Tables | |
| Vector database by default | S3 Vectors (or the store that post already names) | S3 Vectors post | Sub-50 ms tool-loop retrieval | |
| POSIX mount of a bucket from Lambda | S3 Files, or EFS if locks matter | S3 Files vs EFS post | `flock()` across concurrent writers | |
| EBS / EFS / FSx debate | Storage decision tree | `/decide/which-aws-storage/` | You are choosing Tables, Vectors, or Files instead | |
| Recurring dataset copy, or partner file drop | DataSync, or Transfer Family | Not published. Do not design it here. | Hold | |
| Ingestion worker | Glue Zero-ETL, DMS, Firehose, or AppFlow | Ingestion decision | | |
| Lake capture of a database | Zero-ETL or DMS plus MERGE | CDC into S3 Tables | | |
| License renewal as a connection-string change | Stay, Babelfish, or convert | Oracle and SQL Server decision | | |
| Funded source rewrite | Continuous modernization or rewrite | Transform decision | | |

## Review rule

- Stop-rule false and the URL exists: delete the box.
- Stop-rule true: keep the box and write the condition in the ticket.
- Spoke not published (DataSync vs Transfer Family, one-call Scheduler): hold. Do not specify the design in the margin.
