Otras arquitecturas
1. Onion Architecture #
Similar a Clean Architecture, pero enfatiza la idea de capas concéntricas alrededor del dominio, con dependencias hacia el núcleo.
Estructura típica #
src/
│
├── domain/ # Entidades y lógica de negocio
├── application/ # Casos de uso
├── interfaces/ # APIs, UI, etc.
└── infrastructure/
2. Monorepos #
Un monorepo organiza múltiples servicios o aplicaciones dentro de un único repositorio, ideal para proyectos grandes con múltiples equipos.
Estructura típica #
monorepo/
├── apps/ # Aplicaciones principales
│ ├── web/
│ ├── mobile/
│ └── backend/
│
├── libs/ # Librerías compartidas
│ ├── ui-components/
│ ├── utilities/
│ └── api-clients/
│
├── tools/ # Herramientas de configuración
│ ├── eslint/
│ └── prettier/
│
├── package.json
└── README.md
Ventajas de Monorepos #
- Consistencia:
- Compartir configuraciones, dependencias y librerías es sencillo.
- Coordinación:
- Cambios en múltiples servicios o aplicaciones se manejan desde un solo repositorio.
- Eficiencia:
- Reduce duplicaciones y promueve la reutilización.
3. Arquitectura Hexagonal #
En la La Hexagonal Architecture (Ports and Adapters), la aplicación se divide en un núcleo independiente que interactúa con el exterior a través de puertos y adaptadores.
Estructura típica #
src/
│
├── core/ # Núcleo de la lógica
│ ├── domain/
│ └── services/
├── ports/ # Interfaces para adaptadores
├── adapters/ # Implementaciones de los puertos
│ ├── database/
│ ├── http/
│ └── messaging/
└── config/
4. Modular Architecture #
Divide el código en módulos independientes que pueden evolucionar y ser desplegados por separado.
Estructura típica #
src/
│
├── module1/
│ ├── controller.js
│ ├── service.js
│ ├── model.js
│ └── routes.js
├── module2/
└── shared/
5. Arquitectura Orientada a Eventos #
La comunicación entre componentes se realiza a través de eventos.
Estructura típica #
src/
│
├── producers/
├── consumers/
├── events/
└── handlers/
6. Arquitectura Basada en Componentes #
Divide el sistema en componentes reutilizables e independientes.
Estructura típica #
src/
│
├── components/
│ ├── Header/
│ ├── Footer/
│ └── Sidebar/
└── services/
7. Arquitectura Orientada a Servicios (SOA) #
El sistema está compuesto por servicios independientes que interactúan a través de APIs.
Estructura típica #
src/
│
├── services/
│ ├── auth/
│ ├── payments/
│ └── notifications/
├── gateways/
└── shared/
Resumen del tema
Conceptos clave #
- Arquitectura Hexagonal (Ports & Adapters): aísla el dominio mediante puertos (interfaces) y adaptadores que traducen entradas y salidas hacia el mundo exterior (HTTP, BD, colas).
- Arquitectura Basada en Componentes / Módulos: empaqueta vistas y lógica en componentes reutilizables y autónomos.
- Arquitectura Orientada a Eventos (EDA): comunicación asíncrona y desacoplada mediante productores, consumidores y gestores de eventos (event handlers).
Qué debes recordar #
Elige el estilo arquitectónico (hexagonal, modular, por componentes o guiada por eventos) según la escala, naturaleza y requisitos de integración de tu sistema.