@startuml branching-strategy-neon !include _style.iuml title 2b. Estrategia de branches Neon Postgres skinparam ranksep 60 skinparam nodesep 40 cloud "Neon · proyecto aged-flower-24986215" { database "production\nbr-floral-field-amerzuwa" as PROD #F0F0F0 database "dev\n(child de production)" as DEV #FAFAFA database "preview/pr-N\n(auto-generado)" as PREV #FAFAFA database "branch restore\n(time-travel WAL)" as RESTORE #FAFAFA } note right of PROD Primary, fuente de verdad. Escritura: solo deploy production de Vercel y crons firmados. Compute: 50–200 CU·h/mes. Storage: 0.5–2 GB. Vida: permanente. end note note right of DEV Para desarrollo local y crons CLI. Reset domingo 23:00 UTC vía cron drop+recreate desde production. Seed sintético, sin PII real. Compute: 5–20 CU·h/mes. Storage delta: <100 MB. Vida: permanente, reset semanal. end note note right of PREV Creado al abrir un PR vía neonctl branches create --parent production --name preview/pr-. Inyectado en DATABASE_URL del preview deploy de Vercel. Compute: 1–5 CU·h por PR. Storage delta: <50 MB (copy-on-write). Vida: 1–4 días tipico, cap 7 días. end note note right of RESTORE Disparado por incidente: neonctl branches restore production --source 'production@'. Retención WAL plan launch: 7 días. Uso: rollback post-migración, forensics, recuperación de borrados. end note PROD --> DEV : reset semanal\n(drop + recreate) PROD --> PREV : neonctl branches create\n--parent production PROD --> RESTORE : WAL replay\nrestore --source @timestamp PREV ..> PROD : neonctl branches delete\nal cerrar PR DEV ..> PROD : seed se descarta\nen reset footer Fuente: docs/architecture/neon-branching.md @enduml