Capa de interoperabilidad · Prueba técnica de arquitectura

Glosario

Siglas y términos usados en el proyecto. Las siglas técnicas de uso diario (API, REST, JSON, HTTP, SQL, DNS, VPN, CRM, SaaS) no se explican.

Negocio y sistemas

Término Significado
ERP (Enterprise Resource Planning) Sistema central de gestión. Aquí, dueño de catálogo, precios e inventario contable
WMS (Warehouse Management System) Sistema de bodega. Dueño del stock físico y los despachos
OMS (Order Management System) Sistema de órdenes. Dueño del registro y ciclo de vida de la orden
SKU (stock keeping unit) Código único de cada producto vendible
ATP (available to promise) Cantidad que se puede prometer a un cliente sin riesgo de incumplir: físico menos reservado menos colchón
Stock vendible Lo mismo que ATP
Colchón de seguridad Unidades que no se ofrecen, para absorber la desactualización del dato
Stakeholder Persona o área con interés en el sistema y autoridad sobre alguna decisión
Partner Organización externa que consume la API (un marketplace); puede tener varios canales
Fulfillment Alistamiento y despacho de una orden
TI Tecnología de la información: el área de sistemas de AndesRetail
MVP (minimum viable product) Producto mínimo viable: la primera entrega útil en producción

Arquitectura

Término Significado
AS-IS y TO-BE La situación actual y la situación propuesta
C4 Modelo de diagramas de arquitectura en cuatro niveles: contexto, contenedores, componentes y código
Bounded context Frontera dentro de la cual un modelo y su vocabulario significan una sola cosa
ACL (anti-corruption layer) Capa anticorrupción: traduce entre el modelo propio y el de otro sistema para que el ajeno no se filtre
Adaptador Componente que implementa la ACL hacia un sistema existente
Modelo canónico Vocabulario y formato únicos dentro de la capa
Saga Coordinación de una operación que toca varios sistemas sin transacción única; cada paso tiene una compensación
Compensación Acción que revierte un paso ya hecho (liberar una reserva, reembolsar)
Pivote Paso de una saga a partir del cual ya no se compensa, sino que se reintenta hasta terminar
Orquestación y coreografía En la primera un coordinador dirige los pasos; en la segunda cada servicio reacciona a eventos sin coordinador
Outbox Patrón en el que el evento se guarda en la misma transacción que el dato y un proceso aparte lo publica
Idempotencia Propiedad por la que repetir una operación produce el mismo resultado que hacerla una vez
Modelo de lectura Copia de datos preparada para consultar rápido, mantenida por eventos
CDC (change data capture) Leer los cambios desde el log de una base de datos para propagarlos sin consultar al sistema origen
Claim check Patrón en el que el evento lleva una referencia y el consumidor pide la carga al dueño del dato
ESB (Enterprise Service Bus) Bus de integración centralizado; su riesgo clásico es acumular lógica de negocio
Estrangulador (strangler fig) Migración gradual: lo nuevo crece alrededor de lo viejo y lo reemplaza por partes
ADR (architecture decision record) Nota corta de una decisión: contexto, opciones, decisión y costo
Función de aptitud (fitness function) Prueba automática que protege una característica de la arquitectura mientras el sistema cambia
Camino dorado (golden path) Ruta estándar y ya resuelta para crear y operar un servicio
IETF (Internet Engineering Task Force) Organismo que publica los estándares de internet
RFC (Request for Comments) Documento de estándar publicado por el IETF; por ejemplo, RFC 9457 define Problem Details
Problem Details Formato estándar de errores HTTP (RFC 9457), con tipo de contenido application/problem+json
ISO 4217 e ISO 8601 Estándares internacionales de códigos de moneda (COP) y de fechas y horas
UTC (tiempo universal coordinado) Referencia horaria única; todos los tiempos de la capa se guardan en UTC
UUID (universally unique identifier) Identificador único universal; formato de Idempotency-Key
W3C (World Wide Web Consortium) Consorcio que publica los estándares de la web
W3C Trace Context Estándar del W3C para propagar el contexto de una traza (cabecera traceparent)
Zona de disponibilidad Centro de datos independiente dentro de una misma región de AWS

Resiliencia

Término Significado
Rate limit Límite de peticiones por unidad de tiempo
Backpressure Mecanismo por el que un sistema lento frena a quien le envía trabajo
Bulkhead Límite de concurrencia por dependencia, para que una lenta no agote los recursos de todas
Circuit breaker Corte automático de llamadas a una dependencia que está fallando, con reintento posterior
Jitter Variación aleatoria en la espera entre reintentos, para que no lleguen todos a la vez
DLQ (dead letter queue) Cola donde quedan los mensajes que fallaron tras agotar los reintentos
TTL (time to live) Tiempo de vida de un dato antes de vencer
SLO (service level objective) Meta medible de calidad de un servicio, contra la que se alerta
p95 Percentil 95: el valor bajo el cual queda el 95% de las mediciones
Lag Retraso de un consumidor de Kafka frente a lo publicado

Seguridad

Término Significado
OAuth2 Estándar de autorización por el que un cliente obtiene un token para llamar a una API
OIDC (OpenID Connect) Capa de identidad sobre OAuth2
JWT (JSON Web Token) Token firmado que lleva los datos de quien llama (claims)
Scope Permiso que un token otorga sobre un grupo de operaciones
Claim Dato dentro de un token
JWKS (JSON Web Key Set) Documento público con las llaves para verificar la firma de los tokens
Enmascarar, dato enmascarado Reemplazar un dato sensible por un marcador fijo (--data_redacted--) para que no quede guardado ni a la vista, por ejemplo al pasar un mensaje a la DLQ (ADR-029). No se dice "redactar", que en español significa escribir
PKCE (Proof Key for Code Exchange) Protección del flujo de autorización para aplicaciones que no pueden guardar un secreto
mTLS (mutual TLS) Cifrado en el que ambos extremos se autentican con certificado
HMAC Firma de un mensaje con un secreto compartido; permite verificar origen e integridad
PII (personally identifiable information) Datos que identifican a una persona
PCI DSS (Payment Card Industry Data Security Standard) Estándar de seguridad de la industria de tarjetas; quien toque datos de tarjeta queda sujeto a auditorías
Ley 1581 de 2012 Ley colombiana de protección de datos personales
BOLA (broken object level authorization) Falla al comprobar que el objeto pedido pertenece a quien lo pide
SSRF (server-side request forgery) Ataque que logra que el servidor haga peticiones a destinos elegidos por el atacante
3-D Secure Paso de autenticación adicional del titular de una tarjeta ante su banco
KMS (Key Management Service) Servicio de gestión de llaves de cifrado de AWS
TLS (Transport Layer Security) Cifrado de las conexiones; es la base de HTTPS
IAM (Identity and Access Management) Sistema de identidades y permisos de AWS
SHA-256 Algoritmo de resumen criptográfico; con HMAC firma los webhooks (HMAC-SHA256)

Plataforma

Término Significado
AWS (Amazon Web Services) La nube de Amazon; infraestructura objetivo del reto
EKS (Elastic Kubernetes Service) El Kubernetes administrado de AWS
JVM (Java Virtual Machine) Máquina virtual en la que corre Java; su costo es memoria y arranque
SNS y SQS (Simple Notification Service y Simple Queue Service) Servicios de notificaciones y colas de AWS; alternativa descartada frente a Kafka (ADR-002)
mermaid-cli Herramienta oficial de Mermaid que exporta diagramas a imagen; se corre con su imagen de Docker (make diagramas)
Sidecar Contenedor que acompaña a cada servicio y le aporta capacidades sin tocar su código
Malla de servicios Red de sidecars que gestiona la comunicación entre servicios (aquí Istio, con Envoy)
OTel (OpenTelemetry) Estándar abierto para generar y exportar logs, métricas y trazas
OTLP (OpenTelemetry Protocol) Protocolo con el que el agente envía trazas, métricas y logs al recolector
Span (tramo) Unidad de una traza: una operación con su servicio, su inicio, su duración y sus atributos. Una traza es el árbol de spans de una petición
TraceQL Lenguaje de consulta de Tempo para buscar trazas por atributos de sus spans; lo usa el recorrido en vivo (ADR-031)
Operador de OpenTelemetry Controlador de Kubernetes que inyecta el agente en los pods anotados, desde un recurso Instrumentation; así la imagen del servicio no lo trae
DaemonSet Recurso de Kubernetes que corre una copia de un pod en cada nodo
CSI (Container Storage Interface) Interfaz con la que Kubernetes monta volúmenes externos; el Secrets Store CSI Driver la usa para montar secretos como archivos
SecretProviderClass Recurso de Kubernetes que indica al driver qué secretos traer y de dónde
EKS Pod Identity Mecanismo que asigna un rol de IAM a un pod sin credenciales guardadas
GitOps Despliegue en el que el clúster se sincroniza con lo que declara el repositorio
NAT (Network Address Translation) y NAT Gateway Salida a internet de las subredes privadas de AWS
Cost Explorer Herramienta de AWS que muestra el gasto real por servicio y por día; el costo real del clúster de la primera corrida se lee ahí
CloudTrail Registro de AWS de quién hizo qué en la cuenta; deja constancia de cada sesión de Session Manager abierta
MSK (Managed Streaming for Apache Kafka) El Kafka administrado de AWS
eCKU (elastic Confluent unit for Kafka) Unidad de capacidad con la que Confluent Cloud cobra
CloudEvents Especificación abierta para los metadatos de un evento
gRPC Protocolo de llamadas remotas sobre HTTP/2 con contratos binarios estrictos
Flexible Configuration Mecanismo de KrakenD para armar su configuración desde plantillas, valores y fragmentos
DNSSEC Firma criptográfica de las respuestas DNS
Cloudflare Access Control de acceso delante de un sitio, sin tocar la aplicación
LTS (long-term support) Versión de un lenguaje o runtime con soporte extendido; es la que se fija en el proyecto
KRaft (Kafka Raft) Modo de Kafka que coordina el clúster sin ZooKeeper; es el único desde Kafka 4
Prueba de humo Prueba corta que confirma que cada pieza responde de verdad, no solo que arrancó
ULID (Universally Unique Lexicographically Sortable Identifier) Identificador único que se ordena por tiempo; base de los identificadores de evento evt_
CDS (Class Data Sharing) Caché de clases de la JVM que acorta el arranque; sus avisos se apagan para que los logs sigan siendo JSON
BOM (Bill of Materials) Lista de versiones de dependencias que Spring Boot administra en bloque
LSN (log sequence number) Posición de un cambio en el registro de la base; el feed del ERP simulado se lee desde un LSN
VU (virtual user) Usuario virtual de k6; cada uno ejecuta el escenario en bucle
FIFO (first in, first out) Cola que atiende en orden de llegada; explica por qué en el pico todo vence por timeout
SIGTERM Señal con la que el sistema operativo o Kubernetes pide a un proceso que termine; dispara el apagado ordenado
SIGKILL Señal que termina un proceso de inmediato, sin apagado ordenado; simula una caída abrupta
NTP (Network Time Protocol) Protocolo que sincroniza los relojes de los equipos; la conciliación del WMS supone relojes sincronizados entre el WMS y la capa
NLB (Network Load Balancer) Balanceador de red de AWS; recibe el tráfico de Cloudflare y lo pasa al gateway de entrada de Istio
LCU (load balancer capacity unit) Unidad de capacidad con la que AWS cobra el uso de un balanceador, además de su hora
KMS (Key Management Service) Servicio de llaves de cifrado de AWS; el demo usa una llave propia para secretos, imágenes y logs
ECR (Elastic Container Registry) Registro de imágenes de contenedor de AWS
IMDSv2 (Instance Metadata Service, versión 2) Servicio de metadatos de una instancia de EC2 que exige token; impide que un pod tome las credenciales del nodo
PVC (PersistentVolumeClaim) Pedido de disco de un pod en Kubernetes; en EKS se vuelve un disco EBS que cobra hasta que se borra
EBS (Elastic Block Store) Discos de AWS para instancias y pods
SSM (AWS Systems Manager) y Session Manager Servicio de AWS para administrar instancias; Session Manager abre sesiones y reenvía puertos a una instancia por su agente, sin SSH, sin IP pública y sin puertos de entrada. Es el túnel a la API privada de Kubernetes (ADR-027)
Bastión Máquina mínima dentro de la red privada que sirve de puerta de paso; aquí no acepta conexiones: solo reenvía la sesión de Session Manager hacia la API de Kubernetes
Client VPN VPN administrada de AWS para conectar equipos a una VPC; descartada para el acceso al clúster por costo (ADR-027)
EC2 Instance Connect Endpoint Punto de AWS que abre túneles hacia IP privadas de una VPC sin bastión; descartado por su límite de una hora por túnel (ADR-027)
Certificado de origen Certificado que firma Cloudflare y solo vale entre su proxy y el servidor de origen (modo Full strict)
Trivy Analizador de seguridad de código abierto; aquí revisa el código de OpenTofu y busca secretos escritos por error
Atributo de solo escritura Atributo de un recurso de OpenTofu que se envía al proveedor y nunca se guarda en el estado ni en el plan
ACL de Kafka (access control list) Lista de permisos de Kafka: qué cuenta puede leer o escribir cada tópico. No confundir con la capa anticorrupción
SASL_SSL Conexión a Kafka cifrada con TLS y con usuario y clave (en Confluent, la llave de la carga)
kind (Kubernetes in Docker) Clúster de Kubernetes que corre en contenedores locales; ensaya el despliegue sin nube
kubeconform Validador de manifiestos de Kubernetes contra el esquema de la API
Preflight Revisión de solo lectura antes de encender: dice si la cuenta, las cuotas y las variables están listas
CRD (CustomResourceDefinition) Tipo de recurso que un componente agrega a Kubernetes, como el Gateway y el VirtualService de Istio
PSA (Pod Security Admission) Control de Kubernetes que aplica por espacio de nombres un nivel de seguridad de pods (restricted, baseline, privileged)
JMESPath Lenguaje de consulta de JSON; el proveedor de AWS del montaje de secretos lo usa para sacar cada clave del secreto JSON
IAM Identity Center (antes AWS SSO) Servicio de AWS de inicio de sesión único: usuarios con MFA y credenciales temporales por conjunto de permisos, sin llaves fijas en disco
SSO (single sign-on) Inicio de sesión único: un solo ingreso que entrega credenciales temporales
MFA (multi-factor authentication) Segundo factor al iniciar sesión
ARN (Amazon Resource Name) Identificador único de un recurso o identidad en AWS
Entrada de acceso de EKS (access entry) Permiso de un rol de IAM dentro del clúster de EKS, con una política de acceso como AmazonEKSClusterAdminPolicy o AmazonEKSViewPolicy
Helm Gestor de paquetes de Kubernetes; un chart es una plantilla de manifiestos con valores por entorno

Tienda

Término Significado
WCAG (Web Content Accessibility Guidelines) Pautas de accesibilidad para el contenido web: la norma de accesibilidad web del W3C. La tienda exige su nivel AA, que incluye contraste de texto de 4.5 a 1
axe Motor automático de revisión de accesibilidad; corre en las pruebas de interfaz de la tienda (@axe-core/playwright)
Playwright Herramienta que automatiza un navegador real para las pruebas de interfaz; su navegador se guarda en .tools/ms-playwright
PIM (product information management) Sistema que guarda el contenido comercial de los productos (nombres, descripciones, fotos). En el demo lo hace seed/catalog.json
Luhn Suma de verificación que cierra el último dígito de todo número de tarjeta; uno de cada diez números al azar la pasa (ADR-026)
BIN (bank identification number) Primeros dígitos de una tarjeta, que identifican al banco emisor
SEO (search engine optimization) Optimización para motores de búsqueda: que un buscador entienda e indexe cada página
GEO (generative engine optimization) Optimización para motores generativos: que un asistente de IA cite el sitio como fuente
AIO (AI overviews optimization) Optimización para resúmenes de IA: aparecer en los resúmenes que los buscadores ponen arriba de los resultados
AEO (answer engine optimization) Optimización para motores de respuesta: responder preguntas directas con datos concretos
SXO (search experience optimization) Optimización de la experiencia desde la búsqueda: que quien llega desde un buscador encuentre, entienda y compre sin perderse
JSON-LD (JSON for linked data) JSON para datos enlazados: el formato de los datos estructurados de schema.org que leen los buscadores
OTLP (OpenTelemetry Protocol) Protocolo de OpenTelemetry para enviar trazas, logs y métricas; lo usan los agentes de las cargas hacia el recolector y el recolector hacia Tempo y Loki (ADR-032)
Kiali Consola de Istio que dibuja el grafo de la malla con el tráfico, los errores y el mTLS de cada arista; en el demo, en monitor.<zona>/kiali, solo lectura (ADR-032)
LogQL y TraceQL Lenguajes de consulta de Loki (logs) y de Tempo (trazas), como PromQL lo es de Prometheus