Skip to content

ADR-003: Sistema Maker-Checker para Cambios Criticos

Estado: Aceptada
Fecha: 2026-05-18
Autor: Equipo de Arquitectura

Contexto

Como plataforma financiera, se requiere un trail de auditoria y flujos de aprobacion para cambios criticos. Esto incluye:

  • Configuracion de productos de credito (tasas, plazos, montos)
  • Asignacion y modificacion de roles de usuario
  • Configuracion de proveedores (bureaus, firmas electronicas)
  • Cambios en reglas de negocio

Los reguladores financieros exigen trazabilidad completa de quien solicito un cambio, quien lo aprobo, y cuando se aplico.

Decision

Implementar un sistema transversal de change_request (solicitud de cambio) con patron Maker-Checker. El sistema es configurable por tenant:

  • Que entidades requieren aprobacion
  • Quien puede aprobar (roles, cantidad de aprobadores)
  • Politicas de auto-aprobacion (ej: platform admin)

Cada change_request almacena:

json
{
  "id": "cr_abc123",
  "tenant_id": "tenant_xyz",
  "entity_type": "product_config",
  "entity_id": "prod_001",
  "action": "update",
  "payload_before": { "...snapshot actual..." },
  "payload_after": { "...cambio propuesto..." },
  "created_by": "user_maker",
  "approved_by": "user_checker",
  "status": "applied",
  "created_at": "2026-05-18T10:00:00Z",
  "applied_at": "2026-05-18T10:05:00Z"
}

Alternativas Consideradas

AlternativaProsContras
Sin aprobacion (cambios directos)Simple, rapidoNo cumple regulacion, sin trazabilidad
Sistemas de aprobacion por dominioCada dominio controla su flujoDuplicacion de logica, inconsistencia entre dominios
Herramienta externa de workflowSeparacion de concernsDependencia externa, latencia, complejidad de integracion
Sistema transversal configurable (elegida)Consistente, auditable, configurable por tenantAgrega complejidad a las mutaciones

Consecuencias

Positivas

  • Cumplimiento regulatorio completo con trail de auditoria inmutable
  • Trazabilidad total: quien pidio, quien aprobo, que cambio, cuando
  • Configurable por tenant: cada organizacion define sus politicas
  • Platform admin puede auto-aprobar para agilizar operaciones internas
  • Reutilizable en todos los dominios de la plataforma

Negativas

  • Agrega complejidad a todas las mutaciones de entidades criticas
  • Latencia adicional en cambios que requieren aprobacion
  • Requiere UI dedicada para gestion de solicitudes pendientes

Riesgos

  • Si la configuracion de politicas es muy compleja, los tenants podrian configurar mal y bloquear operaciones
  • El volumen de change_requests podria crecer significativamente y requerir estrategia de archivado

Referencias

Reimagine Tech LLC — Documentacion Interna