ADR-008 — ORM and data access

Architecture decision record — status: Accepted.

Source: docs/adr/ADR-008-orm-data-access.md

ADR-008: ORM and data access

Estado

Accepted — 2026-08-23

Contexto

NestJS + PostgreSQL + hexagonal ligera. Se necesita tipado, migraciones y productividad de un equipo pequeño. Misma elección que IVPrior.

Decisión

Prisma como ORM oficial, solo en infrastructure.

  • Repositorios implementan puertos del dominio.
  • Use cases / domain no importan @prisma/client.
  • Migraciones Prisma versionadas en el repo.
  • SQL crudo permitido para reportes de dashboard / aging pesado, detrás del mismo puerto.

Alternativas

OpciónNota
PrismaElegida — DX, tipos, factory
TypeORMMás “ORM clásico”, peor DX TS moderna
DrizzleMás SQL-like; menos continuidad con IVPrior
Knex soloDemasiado bajo nivel para el MVP

Consecuencias

  • prisma generate forma parte de make install / CI cuando exista stack.
  • JSONB no sustituye tablas de Invoice, Promise o Message.