Arquitectura escalable y modular con microservicios
En Dafitech, adoptamos una arquitectura basada en microservicios para desarrollar aplicaciones flexibles y escalables. Cada microservicio es responsable de una funcionalidad específica dentro del ecosistema de aplicaciones, lo que permite que se desplieguen y gestionen de manera independiente. Esta arquitectura es ideal para manejar grandes volúmenes de datos y diversas operaciones, asegurando un mantenimiento ágil y un despliegue continuo.
Utilizamos una arquitectura hexagonal (también conocida como "Arquitectura de Puertos y Adaptadores"), que permite una mejor separación de las responsabilidades entre el dominio, la aplicación y la infraestructura. Esto facilita que los microservicios de Dafitech sean modulares, altamente testeables, y fáciles de mantener y escalar.
A continuación se muestra la estructura de carpetas utilizada en uno de nuestros microservicios, organizada según la arquitectura hexagonal:
process-transaction-api/
│
├── cloudbuild/
├── kubernetes/
├── node_modules/
├── sql-scripts/
├── src/
│ ├── application/ # Lógica de la aplicación y orquestación
│ ├── domain/ # Reglas de negocio y modelos
│ ├── infrastructure/ # Adaptadores y conexión con sistemas externos
│ ├── interfaces/ # APIs y controladores
│ └── utils/ # Funciones y herramientas comunes
│
├── .env
├── .env.development
├── .eslintrc.json
├── .gitignore
├── .prettierrc
├── docker-compose.yml
├── dockerfile
├── key.json
├── nodemon.json
├── nodemon-debug.json
├── package.json
├── package-lock.json
├── README.md
└── tsconfig.json
Esta estructura de carpetas sigue los principios de la arquitectura hexagonal, organizando el código en capas que facilitan el mantenimiento y la escalabilidad.
A continuación, se presenta una lista de los microservicios disponibles en Dafitech, con acceso a sus respectivas APIs (documentación Swagger) y sus repositorios de GitHub: