> ## Documentation Index
> Fetch the complete documentation index at: https://internal.softcrum.com/llms.txt
> Use this file to discover all available pages before exploring further.

# ADR-009 — customer-core como bounded context compartido

> Fidelización, Mensajería y CRM necesitan todos perfiles de contacto, identidades, consentimientos, eventos de comportamiento y segmentos. Construirlos dentro de un módulo acopla los demás a él.

Estado: Propuesto · Fecha: 2026-08-15 · Refs: DEC-B1, v0.2 §1

> Traducción. Autoritativo: [`../../adr/adr-009-customer-core-shared-context.md`](/adr/adr-009-customer-core-shared-context).

## Contexto

Loyalty, Messaging y CRM necesitan todos perfiles de contacto, identidades, consentimientos, eventos
de comportamiento y segmentos. Construirlos dentro de cualquiera de esos módulos acopla a los otros y
obliga a refactorizar cuando un módulo nuevo necesite segmentos.

## Decisión

Un cuarto bounded context `customer-core` (schema `core`) es dueño de: contactos, identidades,
fusiones, consentimientos, `tracked_events`, segmentos, definiciones de atributos, taxonomías de
eventos, más las tablas transversales de plataforma (currencies, national\_id\_types, audit\_log,
usage\_snapshots, processed\_jobs, dead\_letters). Reglas de dependencia (impuestas por
dependency-cruiser): loyalty/messaging/crm PUEDEN importar core; core NUNCA los importa; ellos NUNCA
se importan entre sí — la comunicación es solo por eventos de dominio (outbox).

## Consecuencias

* Cualquier módulo futuro consume perfiles y segmentos sin tocar loyalty. + Un solo dueño de la
  superficie de PII y cumplimiento. − Un contexto más que gobernar; los cambios en core exigen revisión
  cruzada entre módulos.
