# Límites entre módulos > Estado: **NORMATIVO**. Define las colaboraciones permitidas entre módulos. Un módulo puede compartir DTOs y contratos de `common`, servicios públicos explícitos y contratos de Core. Un consumidor solo depende de la API pública que el módulo proveedor expone en `services`. Queda prohibido importar Infrastructure interna de otro módulo, repositories, modelos Sequelize, mappers internos o usar `getInternal` fuera del propio módulo. Tampoco se reconstruyen internals ajenos localmente. La API pública debe ser pequeña y responder a consumidores reales. La decisión de qué publicar se toma en el composition root del proveedor; para su ensamblaje, véase [Inyección de dependencias](./dependency-injection.md). `identity-and-companies.md` sigue siendo la referencia específica para la frontera entre esos módulos y ofrece ejemplos de estas reglas.