Ir al contenido

Glosario

Los términos que debes poder definir en 20 segundos durante una entrevista. Si alguno te hace dudar, tienes al lado el módulo del curso que lo explica.


At-least-once / at-most-once / exactly-once — Garantías de entrega. La primera nunca pierde pero duplica; la segunda pierde pero no duplica; la tercera no existe a nivel de red: lo que existe es procesamiento efectivamente una vez = at-least-once + idempotencia. → 00·3

Backpressure — Propagar hacia atrás la señal de “no puedo con más”, en vez de acumular trabajo hasta reventar. → 00·4

Bulkhead (mamparo) — Aislar recursos (pools) por dependencia para que la lentitud de una no consuma la capacidad de todas. → 00·4

CAP / PACELC — Ante una partición eliges disponibilidad o consistencia; y en operación normal (Else) eliges latencia o consistencia. PACELC es la versión útil. → 00·2

Circuit breaker — Deja de llamar a una dependencia que falla o va lenta y falla rápido, con estados cerrado/abierto/semiabierto. → 00·4

Consistencia eventual — Sin nuevas escrituras, las réplicas convergen. Barata y disponible; obliga a diseñar para lecturas obsoletas. → 00·2

Dual write — Escribir en dos sistemas sin atomicidad (BD + broker). Es un bug estructural; se resuelve con outbox. → 00·3

Fallo gris — El servicio no está caído, está lento. Pasa los health checks y satura a todos sus clientes. Peor que una caída. → 00·1

Fallo metaestable — El sistema no se recupera aunque desaparezca la causa original, porque el bucle de reintentos y colas se sostiene solo. → 00·4

Idempotencia — Ejecutar N veces deja el mismo estado que ejecutar una. Se implementa con clave de idempotencia + restricción única. → 00·3

Ley de LittleL = λ × W: concurrencia = rps × latencia. Sirve para dimensionar pools, hilos y consumidores. → 00·5

Load shedding — Rechazar tráfico rápido en sobrecarga, priorizando lo importante, en vez de aceptarlo todo y degradarlo todo. → 00·4

Outbox — Escribir el evento en una tabla dentro de la misma transacción del negocio; un relay (CDC o poller) lo publica después. → 00·3

Retry budget — Límite global al porcentaje de tráfico que puede ser reintento. Lo que evita de verdad un retry storm. → 00·4

Saga — Secuencia de transacciones locales con compensaciones, orquestada o coreografiada, en lugar de una transacción distribuida. → 00·3

Shuffle sharding — Repartir clientes entre subconjuntos de recursos para que un cliente tóxico afecte solo a una fracción. → 00·4

Tail amplification — Con N llamadas paralelas, la latencia percibida es el máximo, no el promedio: el p99 individual se convierte en el caso común. → 00·5

Thundering herd / cache stampede — Muchos clientes reaccionando a la vez (expiración de una clave, reinicio, reintento sincronizado). Se mitiga con jitter y single-flight. → 00·5


Bloqueo optimista / pesimista — Versión + reintento (baja contención) frente a lock explícito (FOR UPDATE, alta contención sobre el mismo recurso). → 00·2

CDC (Change Data Capture) — Leer el log de transacciones de la BD para publicar cambios (Debezium). El relay natural del outbox. → 07·4

CQRS / Event sourcing — Separar el modelo de lectura del de escritura / guardar los hechos en vez del estado. Potentes y caros: no son el default. → 08·3

Expand / contract — Patrón de migración: añadir lo nuevo, migrar, cambiar la lectura, y solo mucho después eliminar lo viejo. → 07·4

Fan-out on write / on read — Precalcular la bandeja de cada seguidor o calcularla al leer. La respuesta real suele ser híbrida. → 08·3

Hot partition — Una partición concentra el tráfico por una clave mal elegida; el resto duerme. → 00·3

Lost update / write skew / phantom read — Anomalías de concurrencia. La primera la permite Read Committed; la segunda solo la evita Serializable. → 00·2

Read-your-writes — Garantía de que ves tus propios cambios, aunque otros tarden. Suele resolverse enrutando tus lecturas al primario. → 00·2

Quórum (R + W > N) — Con N réplicas, leer y escribir en mayorías solapadas garantiza lecturas consistentes. → 00·2

Single-flight — Que solo una petición recalcule una clave caché caliente mientras las demás esperan el resultado. → 00·5


Breaking change — Cambio que rompe a un consumidor existente. Solo son seguras las adiciones opcionales — y aun así, si el cliente tolera lo desconocido. → 07·2

Compatibilidad backward / forward / full — Si el consumidor nuevo lee datos viejos / el viejo lee datos nuevos / ambas. Determina el orden de despliegue. → 07·3

Contract testing — El consumidor declara sus expectativas y el proveedor las verifica en CI (Pact), con can-i-deploy como puerta. → 07·2

Problem Details (RFC 9457) — Formato estándar de error HTTP: type, title, status, detail, instance. → 07·1

Sunset / brownout — Cabecera que anuncia la retirada de una versión / cortes breves y programados para forzar la migración de los rezagados. → 07·2


Error budget — Lo que te queda de incumplimiento permitido según tu SLO. Se usa para decidir si se paran las features. → 00·6

Liveness / readiness / startup probe — ¿Está roto sin remedio? / ¿puede atender ahora? / ¿terminó de arrancar? Confundirlas causa reinicios masivos. → 04·4

RED / USE — Rate, Errors, Duration para servicios; Utilization, Saturation, Errors para recursos. → 00·6

RTO / RPO — Cuánto tardas en volver / cuántos datos puedes perder. Definen la estrategia de recuperación ante desastres. → 04·5

SLI / SLO / SLA — La medida / el objetivo interno / el compromiso contractual. → 00·6

Muestreo head-based / tail-based — Decidir qué traza guardar al principio (barato) o al final, quedándote con las lentas y erróneas (útil). → 00·6

Throttling de CPU (CFS) — El contenedor supera su límite de CPU y el kernel lo frena: latencia con la CPU “baja”. → 04·4


BOLA / IDOR — Acceder a un objeto de otro usuario cambiando el id. La vulnerabilidad nº1 de las APIs. → 06·1

Crypto-shredding — Borrar los datos de un usuario destruyendo su clave de cifrado; útil con eventos inmutables. → 06·3

Dependency confusion — Un paquete público con el nombre de uno interno se instala en su lugar. → 06·3

mTLS — TLS con autenticación de ambos extremos: identidad de servicio a servicio, normalmente automatizada por un service mesh. → 06·3

PKCE — Extensión de OAuth2 que impide canjear un code interceptado. Obligatorio en apps públicas y recomendable en todas. → 06·2

SBOM — Inventario de dependencias de un artefacto. Responde a “¿usamos esa librería vulnerable y dónde?”. → 06·3

SSRF — Tu servidor hace peticiones a URLs controladas por el atacante y alcanza servicios internos o metadatos de la nube. → 06·1

STRIDE — Taxonomía de amenazas: suplantación, alteración, repudio, filtración, denegación y elevación de privilegios. → 06·1

Workload identity (IRSA / Managed Identity) — El proceso obtiene credenciales temporales por su identidad, sin secretos estáticos. → 04·3


Escape analysis (Go, JVM) — El compilador decide si un valor vive en el stack (gratis) o en el heap (lo recoge el GC). → 03·2

GMP (Go) — Goroutines, hilos del SO y procesadores lógicos: el modelo del scheduler. → 03·1

GOMEMLIMIT (Go) — Límite soft de memoria; la forma correcta de evitar OOMKill en contenedores. → 03·2

Happens-before (Java) — Relación que garantiza visibilidad y orden entre hilos. Sin ella hay data race, aunque “funcione”. → 01·2

Pinning (Java, Loom) — Un virtual thread que bloquea dentro de synchronized no puede desmontarse y ocupa su carrier. → 01·2

Starvation de microtasks (Node) — Las promesas se vacían enteras antes de volver al bucle: un ciclo recursivo deja al servidor sin atender. → 02·2

Typed nil (Go) — Una interfaz con tipo y valor nil no es nil: err != nil se cumple con un error “vacío”. → 03·2

Distributividad de conditional types (TypeScript) — El condicional se aplica a cada miembro de la unión; es lo que hace funcionar Exclude. → 02·1


Module Federation — Cargar módulos de otra aplicación en tiempo de ejecución, con negociación de dependencias compartidas. → 05·2

Singleton (shared) — Marca una dependencia para que exista una sola instancia; sin ella acabas con dos Reacts en la página. → 05·2

Waterfall de carga — Cadena secuencial de peticiones (manifest → remoteEntry → chunk → datos) que suma latencias. → 05·4

Ley de Conway — Las organizaciones producen sistemas con la forma de su estructura de comunicación. → 05·1