Saltar al contenido principal

Arquitectura de Microservicios

El backend de CryoNova está construido sobre una arquitectura de microservicios que proporciona escalabilidad, resiliencia y flexibilidad para soportar nuestros sistemas de control cuántico. Cada microservicio es desplegable de forma independiente y está enfocado en un dominio de negocio específico.

Visión General de la Arquitectura

Nuestros microservicios están organizados siguiendo los principios de Diseño Dirigido por el Dominio (DDD), con una clara separación de responsabilidades y límites bien definidos entre servicios. La arquitectura enfatiza:

  • Despliegue independiente: Cada servicio puede actualizarse de forma independiente
  • Resiliencia: Un fallo en un servicio no afecta al funcionamiento del sistema completo
  • Escalabilidad: Los servicios pueden escalarse según los patrones de demanda
  • Flexibilidad tecnológica: Los servicios pueden utilizar las herramientas más apropiadas para sus requisitos específicos

Servicios Principales

ServicioDescripciónTecnologías
UserSvcGestión de identidad, autenticación y perfiles de usuario.NET 10, PostgreSQL, Dapper, JWT
ProductSvcCatálogo de productos, inventario y gestión de configuración.NET 10, PostgreSQL, Dapper
OrderSvcProcesamiento, cumplimiento y seguimiento de pedidos.NET 10, PostgreSQL, Dapper, CQRS
NotificationSvcEntrega de notificaciones multicanal (email, SMS, push).NET 10, MongoDB, CQRS
PaymentSvcProcesamiento de pagos y seguimiento financiero.NET 10, PostgreSQL, Dapper

Patrones de Comunicación

Nuestros microservicios se comunican utilizando una combinación de:

  1. Comunicación Síncrona: APIs REST y gRPC para comunicación directa entre servicios
  2. Comunicación Asíncrona: Mensajería basada en eventos a través de RabbitMQ para consistencia eventual

Arquitectura Dirigida por Eventos

Utilizamos un enfoque basado en eventos para operaciones que:

  • Abarcan múltiples servicios
  • No requieren consistencia inmediata
  • Necesitan mantener un registro de auditoría fiable

Los tipos de eventos clave incluyen:

  • Eventos de usuario (UsuarioCreado, UsuarioActualizado)
  • Eventos de producto (ProductoAñadido, InventarioActualizado)
  • Eventos de pedido (PedidoRealizado, EstadoPedidoCambiado)
  • Eventos de pago (PagoRecibido, ReembolsoEmitido)

Estándares de Desarrollo

Todos los microservicios se adhieren a estos estándares:

  • Versionado de API utilizando rutas URL (/api/v1/, /api/v2/)
  • Documentación Swagger/OpenAPI
  • Logging estructurado con IDs de correlación
  • Verificaciones de salud y sondas de disponibilidad
  • Contenerización con Docker
  • Patrones de manejo de errores consistentes