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 |