Microservicios
Los microservicios son un patrón arquitectónico que estructura una aplicación como un conjunto de servicios pequeños, desplegables de manera independiente, cada uno responsable de una función empresarial específica y que se comunica mediante APIs bien definidas.
Comprendiendo Microservicios
Las aplicaciones monolíticas agrupan toda la funcionalidad en una sola unidad desplegable. A medida que crecen, se vuelven más difíciles de desarrollar, probar, desplegar y escalar. Los microservicios descomponen las aplicaciones en servicios independientes: un servicio de usuarios, un servicio de procesamiento de correos electrónicos, un servicio de agentes, un servicio de notificaciones. Cada servicio se puede desarrollar, desplegar y escalar de manera independiente. Los equipos pueden trabajar en distintos servicios en paralelo sin conflictos. Un fallo en un servicio no necesariamente afecta a los demás. La contrapartida es una mayor complejidad operativa: gestionar muchos servicios, su comunicación y sus despliegues requiere una infraestructura más sofisticada.
Cómo GAIA usa Microservicios
GAIA sigue los principios de microservicios en su arquitectura Nx monorepo. La API, la aplicación web, la aplicación de escritorio, la aplicación móvil, el asistente de voz y los bots son aplicaciones independientes que se pueden desplegar por separado y que se comunican a través de interfaces definidas. El procesamiento en segundo plano utiliza trabajadores ARQ como servicios independientes. Esta modularidad permite que los componentes individuales se actualicen, escalen o sustituyan de forma independiente.
Conceptos relacionados
API Gateway
Un API Gateway es un servidor que actúa como punto de entrada único para las solicitudes de los clientes, enruta esas solicitudes a los servicios backend apropiados y se encarga de la autenticación, el control de velocidad, el registro y otras preocupaciones transversales en un sistema distribuido.
Arquitectura orientada a eventos
La arquitectura orientada a eventos (EDA, por sus siglas en inglés) es un patrón de diseño de software donde los componentes del sistema se comunican a través de eventos — notificaciones discretas de que algo ha sucedido — permitiendo un acoplamiento flexible, capacidad de respuesta en tiempo real y sistemas reactivos escalables.
Serverless
La computación serverless es un modelo de ejecución en la nube donde el proveedor gestiona la infraestructura de servidores, asignando recursos y escalando automáticamente según la demanda, lo que permite a los desarrolladores enfocarse en el código en lugar de la gestión de la infraestructura.
Integración de API
La integración de API es el proceso de conectar distintas aplicaciones de software a través de sus Interfaces de Programación de Aplicaciones, permitiendo que compartan datos y funcionalidades de manera fluida.


