DocumentaciónGuía para DesarrolladoresArquitectura del Sistema Loomix y Flujo de Datos

Arquitectura Integral de la Plataforma Loomix

Arquitectura moderna Headless que desacopla por completo la interfaz de usuario, el motor comercial y la gestión de contenidos, interconectando los servicios mediante una red interna de alta velocidad.

Frontend de la Tienda (Next.js 16 Storefront)

Interfaz de usuario moderna basada en React 19 y Next.js App Router, optimizada con renderizado estático y caché.

Motor de Comercio Electrónico (Medusa 2.0 Backend)

Núcleo potente encargado de la lógica comercial: pedidos, carritos, productos, envíos, pasarelas de pago e inventario.

Sistema de Gestión de Contenidos (Strapi v5 CMS)

Panel visual para la gestión de la portada, bloques modulares, artículos de blog y configuración general del sitio.

Registro de Bloques y Diseñador (Loomix Registry)

Infraestructura modular que permite expandir la tienda y modificar estilos visuales sin programar.

Esquema de Flujo de Datos entre Microservicios

  1. El navegador del usuario solicita la página a través del proxy inverso Caddy hacia la tienda Next.js 16.
  2. Next.js consulta los bloques de la página en Strapi y los datos de productos en Medusa mediante la red interna de Docker.
  3. Next.js compila la página y la almacena en caché para servirla a la velocidad de la luz a los siguientes visitantes.
  4. Al modificar contenido en los paneles, se envía un Webhook inmediato que actualiza la caché en milisegundos.
Consulta para Obtener Datos de Página y Bloques Modulares
typescript
const homepageData = await getHomepageData();
const region = await getRegion(countryCode);
const searchResults = await queryMeilisearch({ color: "Red", price_range: [10, 50] });
return (
<main>
{homepageData.blocks.map((block, index) => (
<BlockRenderer
key={block.id}
block={block}
region={region}
countryCode={countryCode}
/>
))}
</main>
);

Aislamiento de Red y Seguridad en Contenedores Docker

Configuración de Red Interna en Docker Compose
bash
networks:
internal-network:
driver: bridge
internal: true