ADR-010 — Modular Boundaries & Isolated Domain

Architecture decision record — status: Accepted (seed default).

Source: docs/adr/ADR-010-modular-boundaries.md

ADR-010: Modular Boundaries & Isolated Domain

Estado

Accepted (seed default) — enmendable; no elige stack

Contexto

Hace falta una forma de pensar el software antes de fijar lenguaje o framework.

Decisión

  1. Organizar por módulos / bounded contexts de negocio.
  2. Preferir un deployable modular; microservicios solo con ADR y necesidad demostrada.
  3. Aislar el dominio de detalles de infraestructura (DB, transporte, vendors) — estilo puertos y adaptadores / hexagonal ligero.
  4. Casos de uso (o application services) fuera de la capa de entrega.
  5. Sin acceso al almacenamiento interno de otro módulo; comunicación por contratos públicos, orquestación o eventos (ADR-014).
  6. DDD táctico solo donde haya reglas reales — no ceremonias en CRUD trivial.

Layout de carpetas y DI concretos = ADR de tecnología del proyecto.

Consecuencias

  • Se puede diseñar y especificar sin haber elegido Nest/Django/Go/etc.
  • Al elegir stack, este ADR se traduce a estructura real sin cambiar el espíritu.

Ver DOC-010 §1.