Índice completo del banco de preguntas
Fichero generado por
scripts/generar-indice.mjs. No lo edites a mano: ejecutanpm run indice.
494 preguntas en 11 áreas · 209 marcadas como [CASO] (análisis de problemas).
¿No sabes por dónde empezar? Los cursos enseñan lo necesario para responderlas.
| Área | Preguntas | [CASO] |
|---|---|---|
| ☕ Java Senior + Microservicios | 62 | 17 |
| 🟦 TypeScript Senior + Microservicios | 48 | 26 |
| 🐹 Golang Senior + Microservicios | 55 | 18 |
| ☁️ AWS | 47 | 16 |
| ☁️ Azure | 30 | 12 |
| ☁️ GCP | 31 | 12 |
| 🧩 Microfrontends | 30 | 12 |
| 🔐 Seguridad y Vulnerabilidades | 42 | 13 |
| 🔄 Versionamiento de APIs | 40 | 16 |
| 📨 Mensajería y Event-Driven (Kafka · RabbitMQ · Colas) | 59 | 17 |
| 🧠 Casos de Estudio Transversales | 50 | 50 |
| Total | 494 | 209 |
☕ Java Senior + Microservicios
Sección titulada «☕ Java Senior + Microservicios»Carpeta: java-microservicios/ · 62 preguntas
Java Core Avanzado — Preguntas de Entrevista Senior
Sección titulada «Java Core Avanzado — Preguntas de Entrevista Senior»01-java-core-avanzado.md · 15 preguntas
- ¿Cómo funciona G1 GC internamente y qué parámetros clave usarías para hacer tuning? — JVM / Garbage Collection
- ¿Cuándo elegirías ZGC o Shenandoah en lugar de G1? ¿Qué sacrificas? — JVM / Garbage Collection
- Explica el Java Memory Model: ¿qué es happens-before y por qué importa? — Concurrencia / JMM
volatilevssynchronizedvsAtomicLong/VarHandle: ¿cuándo usar cada uno? — Concurrencia / JMM- ¿Qué garantías especiales dan los campos
finaly qué es la publicación segura (safe publication)? — Concurrencia / JMM CompletableFuture: composición, manejo de errores y sus pitfalls principales — Concurrencia- ForkJoinPool y work-stealing: ¿cómo funciona y qué problemas causa el commonPool? — Concurrencia
- Virtual threads (Project Loom): ¿cómo funcionan, cuándo usarlos y qué es el pinning? — Concurrencia / Loom
- Structured concurrency: ¿qué problema resuelve frente a ExecutorService y CompletableFuture? — Concurrencia / Loom
- HashMap por dentro: hashing, resize, treeification y por qué es peligroso en concurrencia — Colecciones
- ConcurrentHashMap: ¿cómo logra thread-safety sin un lock global y qué garantías da? — Colecciones / Concurrencia
- Records: ¿qué aportan realmente, qué limitaciones tienen y cuándo NO usarlos? — Lenguaje moderno
- Sealed classes + pattern matching: ¿cómo cambian el diseño de dominio en Java moderno? — Lenguaje moderno
- Streams paralelos: ¿cuándo ayudan, cuándo perjudican y cuáles son sus pitfalls? — Streams / Concurrencia
- Streams secuenciales: pitfalls avanzados que delatan a un desarrollador junior — Streams
Spring y Microservicios — Preguntas de Entrevista Senior
Sección titulada «Spring y Microservicios — Preguntas de Entrevista Senior»02-spring-y-microservicios.md · 16 preguntas
- ¿Cómo funciona la auto-configuración de Spring Boot por dentro? — Spring Boot internals
- @Transactional: propagación, rollback y los pitfalls del proxy — Spring / Transacciones
- ¿Cómo implementarías circuit breakers con Resilience4j y qué configuración importa de verdad? — Resiliencia
- Comunicación síncrona vs asíncrona entre microservicios: ¿cómo decides? — Arquitectura
- Kafka: consumer groups y rebalancing — ¿qué pasa exactamente y cómo lo controlas? — Kafka
- Kafka: ¿qué significa exactly-once realmente y cómo se consigue con Java? — Kafka
- Patrón Saga: orquestación vs coreografía para transacciones distribuidas — Patrones
- Patrón Outbox: ¿cómo publicas eventos de forma atómica con tu transacción de BD? — Patrones / Kafka
- Proxies en Spring (JDK vs CGLIB) y ciclo de vida de beans: ¿qué errores reales causan? — Spring internals
- Spring Cloud Config y configuración dinámica: ¿cómo refrescas configuración sin redeploy y qué riesgos tiene? — Spring Cloud
- Spring Cloud Gateway: ¿qué papel juega y cómo implementarías rate limiting y resiliencia en el borde? — Spring Cloud
- CQRS y Event Sourcing: ¿qué resuelven, cómo se implementan y cuándo son una mala idea? — Patrones
- Service discovery: ¿Eureka, DNS de Kubernetes o service mesh? ¿Client-side o server-side? — Infraestructura de microservicios
- Observabilidad en microservicios Java: Micrometer, OpenTelemetry y qué instrumentar — Observabilidad
- Testcontainers: ¿cómo testeas integración real (BD, Kafka) sin mocks y sin flakiness? — Testing
- Contract testing con Pact: ¿cómo evitas romper consumidores sin tests E2E? — Testing
Casos y Problemas de Producción — Preguntas de Entrevista Senior
Sección titulada «Casos y Problemas de Producción — Preguntas de Entrevista Senior»03-casos-y-problemas.md · 15 preguntas
- Memory leak en producción: el heap crece hasta OOM cada 3 días
[CASO]— JVM / Troubleshooting - Latencia p99 alta en un servicio Spring Boot con p50 normal: ¿cómo lo investigas?
[CASO]— Performance - Thread pool exhaustion: Tomcat deja de responder pero la CPU está al 10%
[CASO]— Concurrencia / Spring - Deadlock en producción: dos funcionalidades se congelan a la vez de forma intermitente
[CASO]— Concurrencia - Consumer lag creciente en Kafka: el consumidor procesa pero cada vez va más atrás
[CASO]— Kafka - Mensajes duplicados: facturación cobró dos veces el mismo pedido
[CASO]— Kafka / Patrones - Transacción distribuida que deja datos inconsistentes: pedido pagado sin stock reservado
[CASO]— Patrones / Datos distribuidos - N+1 queries con JPA/Hibernate: un listado que hace 400 queries
[CASO]— JPA / Performance - OutOfMemoryError: Metaspace tras varios redeploys o en un servicio con mucha reflection
[CASO]— JVM / Troubleshooting - Un servicio degradado tumba en cascada a toda la plataforma: anatomía y defensa
[CASO]— Resiliencia / Arquitectura - Migrar un monolito a microservicios: ¿por dónde empiezas y cómo evitas el desastre?
[CASO]— Arquitectura / Migración - Full GC pauses de varios segundos: los health checks fallan y los pods se reinician
[CASO]— JVM / GC - HikariCP agotado: “Connection is not available, request timed out after 30000ms”
[CASO]— Base de datos / Spring - Pérdida de mensajes: un evento de pedido nunca llegó a facturación
[CASO]— Kafka - Hot partition en Kafka: una partición concentra el tráfico y un consumer va ahogado
[CASO]— Kafka
Quarkus, MicroProfile y Native Image — Preguntas de Entrevista Senior
Sección titulada «Quarkus, MicroProfile y Native Image — Preguntas de Entrevista Senior»04-quarkus-y-native.md · 16 preguntas
- ¿Qué hace diferente a Quarkus de Spring Boot por dentro? Build-time processing — Quarkus internals
- ArC: el CDI de Quarkus — qué implementa, qué no, y el error del “bean eliminado” — Quarkus / CDI
- GraalVM Native Image: closed-world assumption — qué se rompe y cómo se registra — Native Image
- JVM vs native: ¿cuándo compensa de verdad compilar a native? — Native Image / Arquitectura
- Mutiny y el modelo reactivo de Quarkus: Uni, Multi, event loop y @Blocking — Reactivo / Mutiny
- RESTEasy Reactive: imperativo y reactivo en el mismo stack — ¿cómo decide el dispatch? — REST / Quarkus
- Panache: active record vs repository, límites y Panache reactive — Persistencia / Panache
- Configuración en Quarkus: MicroProfile Config, @ConfigMapping, perfiles y la trampa build-time — Configuración
- SmallRye Fault Tolerance: semántica exacta de @Retry, @Timeout, @CircuitBreaker, @Bulkhead y @Fallback — Resiliencia / MicroProfile
- Reactive Messaging con Kafka: channels, ack, commit strategies y concurrencia — Mensajería / Kafka
- Dev mode y Dev Services: live reload, testcontainers automáticos y continuous testing — Developer Experience
- Testing en Quarkus: @QuarkusTest, @QuarkusIntegrationTest, @InjectMock y test profiles — Testing
- Transacciones en Quarkus: Narayana, propagación y el choque bloqueante/reactivo — Transacciones
- MicroProfile REST Client: interfaces tipadas, fault tolerance y propagación de contexto — Integración / MicroProfile
- [CASO] En JVM funciona, el binario native peta en producción al deserializar un payload
[CASO]— Native Image / Troubleshooting - [CASO] Migrar 40 microservicios Spring Boot a Quarkus: ¿tiene sentido? Plan y criterios
[CASO]— Arquitectura / Migración
🟦 TypeScript Senior + Microservicios
Sección titulada «🟦 TypeScript Senior + Microservicios»Carpeta: typescript-microservicios/ · 48 preguntas
TypeScript Avanzado — Preguntas de Entrevista Senior
Sección titulada «TypeScript Avanzado — Preguntas de Entrevista Senior»01-typescript-avanzado.md · 16 preguntas
- ¿Qué son los conditional types y cómo funciona
infer? — Type System - Distributividad de conditional types: ¿por qué
Excludefunciona y cuándo hay que desactivarla?[CASO]— Type System - Mapped types: key remapping con
asy modificadores+/-— Type System - Template literal types: rutas y eventos tipados
[CASO]— Type System - Varianza: covarianza, contravarianza,
strictFunctionTypesy bivarianza de métodos — Type System - Type narrowing: type guards con
is, discriminated unions,assertsy exhaustividad connever[CASO]— Type System - Branded types: tipado nominal sobre un sistema estructural — Type System / Diseño de dominio
satisfiesvs anotación de tipo vsas: ¿cuándo usar cada uno? — Type System- Generics avanzados: constraints, defaults, inferencia parcial y sobre-genericidad — Type System / Diseño de API
- Structural typing: excess property checks y compatibilidad accidental
[CASO]— Type System unknownvsanyvsnever: fronteras de API y manejo de errores — Type System / Robustez- Declaration merging y module augmentation: extender Express Request y tipos globales
[CASO]— Módulos / Interop - tsconfig estricto para servicios Node modernos: qué flags activar y por qué — Tooling / Configuración
- Monorepos TypeScript: project references, builds incrementales y Turborepo/Nx
[CASO]— Tooling / Arquitectura - Decoradores: legacy (
experimentalDecorators) vs estándar TC39 — y por qué NestJS sigue en legacy — Lenguaje / Frameworks - Validación runtime con Zod: los tipos se borran, las fronteras no se defienden solas
[CASO]— Robustez / Fronteras del sistema
Node.js y Microservicios — Preguntas de Entrevista Senior
Sección titulada «Node.js y Microservicios — Preguntas de Entrevista Senior»02-node-y-microservicios.md · 16 preguntas
- Explica las fases del event loop de Node.js y qué se ejecuta en cada una — Runtime de Node.js
- [CASO] Un servicio deja de responder a health checks aunque el proceso sigue vivo: sospechas de starvation de microtasks. ¿Qué está pasando y cómo lo diagnosticas?
[CASO]— Runtime de Node.js - Worker threads vs cluster vs child_process: ¿cuándo usarías cada uno? — Runtime de Node.js
- Streams y backpressure: ¿cómo procesarías un archivo de 10 GB de pedidos sin tumbar el servicio? — Runtime de Node.js
- Inyección de dependencias en NestJS: providers, scopes y su coste — NestJS
- Guards, interceptors, pipes y exception filters en NestJS: orden de ejecución y casos de uso — NestJS
- REST vs gRPC entre microservicios con TypeScript: ¿cuándo eliges cada uno? — Comunicación entre servicios
- Kafka vs RabbitMQ vs BullMQ: ¿cómo eliges la tecnología de mensajería? — Mensajería
- Patrón Saga: coreografía vs orquestación en un flujo de pedidos y pagos — Patrones de microservicios
- Patrón Outbox e idempotencia: ¿cómo consigues “exactly-once efectivo” entre base de datos y broker? — Patrones de microservicios
- [CASO] Al desplegar en Kubernetes se pierden peticiones y quedan jobs a medias: diseña el graceful shutdown
[CASO]— Operación / Kubernetes - Manejo de errores async en Node: unhandled rejections, captureRejections y por qué no “tragar” errores — Runtime de Node.js
- Observabilidad con OpenTelemetry en Node: trazas distribuidas, propagación de contexto y correlación — Observabilidad
- Estrategia de testing en microservicios: unit, integración con Testcontainers y contract testing — Testing
- [CASO] La latencia p99 de tu API se dispara con ciertos payloads: ¿cómo detectas y evitas el bloqueo del event loop?
[CASO]— Performance - Manejo de JSON grande en Node: streaming parsers, NDJSON y alternativas binarias — Performance / Datos
Casos y Problemas Reales — Entrevista Senior
Sección titulada «Casos y Problemas Reales — Entrevista Senior»03-casos-y-problemas.md · 16 preguntas
- Memory leak: el heap crece hasta OOM
[CASO]— Node.js internals / Observabilidad - Event loop bloqueado: p99 disparado por código CPU-bound
[CASO]— Performance / Event loop - OOM procesando archivos grandes: readFile vs streams
[CASO]— Streams / Backpressure - Unhandled promise rejection tumbando pods en cascada
[CASO]— Async / Resiliencia - Fuga de conexiones a Postgres: pool agotado
[CASO]— Bases de datos / Recursos - Cola con lag creciente: consumidores que no dan abasto
[CASO]— Mensajería / Kafka / BullMQ - Race condition: doble descuento de stock en operaciones concurrentes
[CASO]— Concurrencia / Consistencia de datos - Hot reload de configuración sin reiniciar el servicio
[CASO]— Configuración / Operabilidad - Migración JS→TS incremental en un servicio grande
[CASO]— TypeScript / Deuda técnica - Timeout en cascada entre servicios: A→B→C
[CASO]— Sistemas distribuidos / Resiliencia - DNS y keep-alive con axios/undici en alta concurrencia
[CASO]— Redes / HTTP clients - Degradación por GC: pausas largas y sawtooth agresivo
[CASO]— Node.js internals / Memoria - Pérdida de eventos: mensajes que “desaparecen”
[CASO]— Mensajería / Consistencia - Duplicación de jobs/mensajes: el mismo evento procesado dos veces
[CASO]— Mensajería / Idempotencia - Hot path degradado: CPU throttling en Kubernetes distorsionando latencias
[CASO]— Kubernetes / Runtime - Graceful shutdown roto: 502s en cada deploy
[CASO]— Kubernetes / Ciclo de vida
🐹 Golang Senior + Microservicios
Sección titulada «🐹 Golang Senior + Microservicios»Carpeta: golang-microservicios/ · 55 preguntas
Go Core Avanzado — Preguntas de Entrevista Senior
Sección titulada «Go Core Avanzado — Preguntas de Entrevista Senior»01-go-core-avanzado.md · 21 preguntas
- Explica el modelo GMP del scheduler de Go — Runtime / Scheduler
- ¿Por qué las goroutines son más baratas que los threads del OS? — Runtime / Concurrencia
- Channels buffered vs unbuffered: semántica y cuándo usar cada uno — Concurrencia / Channels
select: semántica, patrones y trampas — Concurrencia / Channels- Patrones de concurrencia: pipeline, fan-out y fan-in — Concurrencia / Patrones
- El paquete
sync: Mutex, RWMutex, WaitGroup, Once — usos y trampas — Concurrencia / Sincronización errgroup: qué aporta sobre WaitGroup y cómo usarlo bien — Concurrencia / Sincronizaciónsync/atomicvs Mutex: cuándo y por qué — Concurrencia / Sincronizacióncontext.Context: cancelación, deadlines y valores — reglas de uso — Context / Diseño de APIs- Escape analysis, stack vs heap, y cómo reducir allocaciones — Memoria / Performance
- El GC de Go: cómo funciona, GOGC y GOMEMLIMIT — Memoria / GC
- Slices internals: capacidad, aliasing, append y sus gotchas — Estructuras de datos
- Maps internals: buckets, iteración aleatoria y concurrencia — Estructuras de datos
- Interfaces internals: iface/eface y el gotcha del “typed nil” — Tipos / Interfaces
- Generics en Go: type parameters, constraints y cuándo usarlos — Tipos / Generics
- Error handling idiomático: wrapping, errors.Is/As, sentinel vs typed errors — Errores / Diseño de APIs
defer: semántica precisa y sus gotchas — Lenguaje / Control de flujofor range, closures y goroutines: el bug clásico de captura de variables — Lenguaje / Concurrencia- Stack growth,
sync.Pooly presión de GC en hot paths — Memoria / Performance - [CASO] Un servicio funciona en tests pero
-raceen CI reporta una data race en un map de caché. Analiza[CASO]— Concurrencia / Debugging - [CASO] Necesitas procesar 10M de registros llamando a una API externa con límite de 100 concurrentes. Diseña la solución
[CASO]— Concurrencia / Diseño
Microservicios en Go — Preguntas de Entrevista Senior
Sección titulada «Microservicios en Go — Preguntas de Entrevista Senior»02-microservicios-en-go.md · 18 preguntas
- Diseño de un servidor HTTP de producción con
net/http: timeouts y configuración — HTTP / Servicios - Middleware en Go: patrón, orden y ejemplos reales — HTTP / Servicios
- gRPC en Go: unary vs streaming, deadlines y manejo de errores — gRPC
- Interceptors de gRPC: para qué y cómo implementarlos — gRPC
- Graceful shutdown completo de un microservicio en Go — Ciclo de vida / Operación
- Worker pools y control de concurrencia en servicios — Concurrencia aplicada
- Rate limiting en Go: algoritmos e implementación — Resiliencia
- Circuit breakers: por qué, cómo funcionan y su implementación en Go — Resiliencia
- Kafka en Go: consumer groups, rebalancing y elección de librería — Mensajería / Kafka
- Patrón Outbox e idempotencia: publicar eventos sin perder ni duplicar — Mensajería / Consistencia
- Patrón Saga: transacciones distribuidas sin 2PC — Patrones distribuidos
- Estructura de proyecto en Go:
internal/, hexagonal y organización de paquetes — Arquitectura / Proyecto - Inyección de dependencias en Go: manual, wire, fx — criterio — Arquitectura / Proyecto
- Observabilidad en Go: OpenTelemetry, métricas y pprof en producción — Observabilidad
- Testing en microservicios Go: table-driven, testcontainers, mocks y race detector — Testing
- Timeouts, retries y hedging entre servicios: presupuesto de latencia end-to-end — Resiliencia / Comunicación
- Versionado y evolución de APIs y eventos en microservicios Go — Contratos / Evolución
- Configuración y secretos en microservicios Go — Operación / Configuración
Casos y Problemas de Producción — Go y Microservicios
Sección titulada «Casos y Problemas de Producción — Go y Microservicios»03-casos-y-problemas.md · 16 preguntas
- [CASO] Goroutine leak en producción: la memoria y el número de goroutines crecen sin parar
[CASO]— Concurrencia / Debugging - [CASO] La memoria RSS crece y el pod es OOM-killed, pero el heap de pprof se ve pequeño
[CASO]— Memoria / GC - [CASO] Deadlock: el servicio se congela por completo bajo carga y no responde ni el health check
[CASO]— Concurrencia / Debugging - [CASO] El race detector señala una race en producción… que “nunca ha dado problemas”. Convence al equipo y arréglala
[CASO]— Concurrencia / Debugging - [CASO] p99 degradado con p50 normal: ¿GC o contención? Diagnostica y arregla
[CASO]— Performance / Latencia - [CASO] El servidor HTTP agota file descriptors: “too many open files”
[CASO]— HTTP / Recursos - [CASO] Contexto cancelado que no se propaga: el caller recibe timeout pero el trabajo sigue ejecutándose (trabajo huérfano)
[CASO]— Context / Consistencia - [CASO] Datos corruptos intermitentes: dos features pisan los mismos bytes por aliasing de slices
[CASO]— Slices / Memoria - [CASO] Un panic en una goroutine tumba todo el proceso cada pocas horas
[CASO]— Errores / Runtime - [CASO] Consumer de Kafka con lag creciente: los mensajes se acumulan más rápido de lo que se procesan
[CASO]— Kafka / Throughput - [CASO] Timeouts en cascada entre servicios gRPC: un incidente pequeño se convierte en outage general
[CASO]— gRPC / Resiliencia - [CASO] Connection pool de
database/sqlagotado: requests esperando conexión y timeouts en la capa de datos[CASO]— Base de datos / Recursos - [CASO] Procesar un archivo de 20GB tumba el servicio por memoria: diseño de streaming
[CASO]— I/O / Memoria - [CASO] Migración de un servicio Java/Node a Go: qué evaluar, cómo ejecutarla y qué trampas esperan
[CASO]— Arquitectura / Migración - [CASO] El servicio consume 100% CPU con tráfico normal: busy loop, serialización o algo peor
[CASO]— Performance / CPU - [CASO] Tras un deploy, errores 502/connection reset intermitentes solo durante los rollouts
[CASO]— Ciclo de vida / Kubernetes
Carpeta: cloud/aws/ · 47 preguntas
Fundamentos y Arquitectura en AWS — Entrevistas Senior
Sección titulada «Fundamentos y Arquitectura en AWS — Entrevistas Senior»01-fundamentos-y-arquitectura.md · 18 preguntas
- Diseño de una VPC: subnets públicas/privadas, NAT e Internet Gateway — Networking
- VPC Endpoints: Gateway vs Interface, y cuándo usarlos — Networking
- VPC Peering vs Transit Gateway: conectividad entre VPCs — Networking
- IAM avanzado: evaluación de policies, roles y STS — Seguridad
- Permission boundaries, SCPs y acceso cross-account — Seguridad
- ECS vs EKS vs Lambda vs Fargate: criterios de elección de cómputo — Cómputo
- ALB vs NLB vs API Gateway: exposición de servicios — Networking / Integración
- RDS vs Aurora: cuándo pagar la prima de Aurora — Bases de datos
- DynamoDB: modelado single-table y particiones calientes — Bases de datos
- SQS vs SNS vs EventBridge: mensajería y eventos — Integración
- Kinesis Data Streams vs MSK (Kafka): streaming de datos — Integración / Streaming
- Step Functions: orquestación de workflows — Integración / Orquestación
- ElastiCache: Redis vs Memcached y patrones de caching — Bases de datos / Performance
- S3: consistencia, clases de almacenamiento y performance — Almacenamiento
- Multi-AZ vs multi-región: alta disponibilidad real — Arquitectura / Resiliencia
- Disaster Recovery: RTO/RPO y las cuatro estrategias — Arquitectura / Resiliencia
- Well-Architected Framework: los seis pilares aplicados — Arquitectura / Gobernanza
- Control de costos en AWS: de la visibilidad a la optimización — FinOps
Microservicios en AWS — Entrevistas Senior
Sección titulada «Microservicios en AWS — Entrevistas Senior»02-microservicios-en-aws.md · 13 preguntas
- Arquitectura de referencia de microservicios en AWS — Arquitectura
- Service discovery con Cloud Map y alternativas — Networking / Integración
- Service mesh en AWS: App Mesh vs VPC Lattice — Networking / Arquitectura
- API Gateway + Lambda vs contenedores para APIs — Cómputo / Arquitectura
- Colas y DLQs: retries, backoff y poison messages — Integración / Resiliencia
- Exactly-once vs at-least-once en SQS y Kinesis — Integración / Consistencia
- El patrón Saga con Step Functions — Arquitectura / Consistencia
- El patrón Outbox con DynamoDB Streams (y CDC en general) — Arquitectura / Consistencia
- Secrets Manager vs Parameter Store: gestión de secretos y configuración — Seguridad / Configuración
- CI/CD en AWS: blue/green y canary con CodeDeploy — DevOps / Despliegue
- Observabilidad: CloudWatch, X-Ray y ADOT — Observabilidad
- Lambda internals: cold starts, concurrencia y provisioned concurrency — Cómputo / Performance
- Versionado de APIs y contratos entre microservicios — Arquitectura / Integración
Casos y Problemas en AWS — Entrevistas Senior
Sección titulada «Casos y Problemas en AWS — Entrevistas Senior»03-casos-y-problemas.md · 16 preguntas
- Lambda con cold starts inaceptables en una API de pagos
[CASO]— Cómputo / Performance - DynamoDB con throttling por hot partition en un multi-tenant
[CASO]— Bases de datos - La factura de AWS se triplicó este mes: análisis
[CASO]— FinOps - Pods de EKS en CrashLoopBackOff tras un deploy
[CASO]— Contenedores / EKS - Latencia intermitente entre servicios en distintas AZ
[CASO]— Networking / Performance - Mensajes de SQS que “reaparecen” y se procesan varias veces
[CASO]— Integración - La DLQ se está llenando: triage y reproceso
[CASO]— Integración / Operación - RDS PostgreSQL con CPU al 100%: análisis con Performance Insights
[CASO]— Bases de datos - API Gateway devolviendo 429 y 504: throttling y timeouts
[CASO]— Integración / Performance - Caída de una AZ: comportamiento del sistema y diseño de resiliencia
[CASO]— Arquitectura / Resiliencia - Fuga de credenciales IAM: respuesta al incidente
[CASO]— Seguridad - S3 lento en listados masivos y cargas con millones de objetos
[CASO]— Almacenamiento / Performance - Kinesis con shards saturados y consumidores con lag creciente
[CASO]— Streaming / Performance - Migración a AWS: lift-and-shift vs re-architect
[CASO]— Arquitectura / Estrategia - ECS tasks que mueren por memoria (OOM) de forma intermitente
[CASO]— Contenedores / ECS - NAT Gateway con costos disparados: análisis y rediseño
[CASO]— Networking / FinOps
☁️ Azure
Sección titulada «☁️ Azure»Carpeta: cloud/azure/ · 30 preguntas
Azure — Fundamentos y Arquitectura (Perfil Senior Backend/Microservicios)
Sección titulada «Azure — Fundamentos y Arquitectura (Perfil Senior Backend/Microservicios)»01-fundamentos-y-arquitectura.md · 12 preguntas
- ¿Cómo organizas suscripciones, Management Groups y Resource Groups en una organización grande? — Gobernanza y organización
- Diseño de redes: VNets, subnets, NSGs, Private Endpoints y peering — Redes
- Identidad: Entra ID, Service Principals, Managed Identities y RBAC — Identidad y seguridad
- Cómputo: ¿cuándo elegir AKS, Container Apps, App Service o Functions? — Cómputo y arquitectura
- Azure SQL vs Cosmos DB: consistencia, particionado y RUs — Datos
- Mensajería: Service Bus vs Event Grid vs Event Hubs — Mensajería e integración
- API Management: rol en una arquitectura de microservicios — Integración y APIs
- Front Door vs Application Gateway vs Load Balancer vs Traffic Manager — Redes y entrega
- Key Vault: gestión de secretos, claves y certificados — Seguridad
- Almacenamiento: Blob Storage, tiers y ciclo de vida — Datos y almacenamiento
- Multi-región y Disaster Recovery: cómo se diseña — Resiliencia y DR
- Well-Architected Framework aplicado a un diseño en Azure — Arquitectura y buenas prácticas
Azure — Microservicios y Casos Prácticos (Perfil Senior Backend/Microservicios)
Sección titulada «Azure — Microservicios y Casos Prácticos (Perfil Senior Backend/Microservicios)»02-microservicios-y-casos.md · 18 preguntas
- Arquitectura de referencia de microservicios en Azure (AKS + Service Bus + APIM) — Arquitectura de microservicios
- Durable Functions para implementar Sagas — Patrones distribuidos
- Dapr sobre Container Apps: qué aporta a microservicios — Plataformas y runtime
- Observabilidad con Application Insights: distributed tracing y sampling — Observabilidad
- Despliegues blue/green y canary en AKS — Entrega continua
- Idempotencia, outbox y exactly-once práctico en mensajería Azure — Patrones distribuidos
- [CASO] Cosmos DB devuelve 429: RU exhaustion y hot partition
[CASO]— Datos - [CASO] La DLQ de Service Bus crece sin parar
[CASO]— Mensajería - [CASO] App Service con memory leak y reinicios continuos
[CASO]— Cómputo / rendimiento - [CASO] AKS: pods evicted y nodos bajo presión
[CASO]— Kubernetes / operación - [CASO] Latencia alta entre servicios en AKS: DNS, conntrack y kube-proxy
[CASO]— Kubernetes / redes - [CASO] Azure Functions con cold starts y timeouts
[CASO]— Serverless - [CASO] El costo de Cosmos DB y Log Analytics se disparó
[CASO]— FinOps / costos - [CASO] Throttling de Entra ID en la autenticación entre servicios
[CASO]— Identidad - [CASO] Pérdida de mensajes en Event Hubs por mal checkpointing
[CASO]— Streaming - [CASO] Incidente por expiración de secretos/certificados en Key Vault
[CASO]— Seguridad / operación - [CASO] Migración de on-premise a Azure: evaluación y estrategia
[CASO]— Migración / arquitectura - [CASO] Degradación tras un failover de región
[CASO]— Resiliencia / DR
Carpeta: cloud/gcp/ · 31 preguntas
Fundamentos y Arquitectura en GCP — Entrevistas Senior
Sección titulada «Fundamentos y Arquitectura en GCP — Entrevistas Senior»01-fundamentos-y-arquitectura.md · 13 preguntas
- Explica la jerarquía de recursos de GCP (Organización, Folders, Projects) y por qué importa en una empresa grande — Fundamentos / Gobernanza
- IAM en GCP: roles, service accounts y mejores prácticas de mínimo privilegio — Seguridad / IAM
- ¿Qué es Workload Identity Federation y por qué elimina las claves de service account? — Seguridad / IAM
- VPC en GCP: Shared VPC vs VPC Peering vs Private Service Connect — Redes
- GKE vs Cloud Run vs Cloud Functions vs App Engine: ¿cuándo eliges cada uno? — Cómputo / Arquitectura
- GKE Autopilot vs Standard: trade-offs reales en producción — Cómputo / Kubernetes
- Cloud SQL vs Spanner vs Firestore vs Bigtable: criterios de elección, consistencia y particionado — Datos / Bases de datos
- Pub/Sub en profundidad: at-least-once, ordering keys, exactly-once y dead letter queues — Mensajería / Integración
- BigQuery: arquitectura, particionado/clustering y control de costos — Datos / Analítica
- Cloud Load Balancing global: anatomía del External Application Load Balancer — Redes / Tráfico
- Memorystore (Redis) en arquitecturas de microservicios: patrones, límites y alta disponibilidad — Datos / Caching
- Diseño multi-región y Disaster Recovery en GCP: RTO/RPO y qué servicio da qué — Arquitectura / Resiliencia
- Anthos / GKE Enterprise y service mesh: ¿cuándo justifica su complejidad? — Plataforma / Service Mesh
Microservicios en GCP y Casos de Producción — Entrevistas Senior
Sección titulada «Microservicios en GCP y Casos de Producción — Entrevistas Senior»02-microservicios-y-casos.md · 18 preguntas
- Arquitectura de referencia de microservicios en GCP: GKE/Cloud Run + Pub/Sub — Arquitectura de microservicios
- Cloud Run internals: concurrencia por instancia, cold starts y CPU throttling fuera de request — Cómputo / Serverless
- Sagas y patrón Outbox con Pub/Sub: consistencia entre microservicios sin 2PC — Patrones distribuidos
- Observabilidad de microservicios con OpenTelemetry en GCP — Observabilidad
- Despliegues canary con Cloud Deploy: pipeline de entrega progresiva en GCP — CI/CD / Entrega
- Resiliencia entre microservicios: timeouts, retries, circuit breakers y load shedding en GCP — Arquitectura / Resiliencia
- [CASO] El backlog de una suscripción de Pub/Sub crece sin parar y los mensajes se reentregan varias veces
[CASO]— Mensajería / Operación - [CASO] Cloud Run con latencia p99 alta: diagnóstico de cold starts y contención
[CASO]— Serverless / Rendimiento - [CASO] GKE: pods OOMKilled intermitentes y el autoscaler de nodos tarda en absorber picos
[CASO]— Kubernetes / Operación - [CASO] Cloud SQL (Postgres) agota las conexiones:
FATAL: remaining connection slots are reserved[CASO]— Bases de datos / Operación - [CASO] La factura de BigQuery se triplica en un mes: queries sin particionar y dashboards descontrolados
[CASO]— Datos / FinOps - [CASO] Spanner con latencias de escritura degradadas: hotspotting por claves secuenciales
[CASO]— Bases de datos distribuidas - [CASO] Firestore con errores ABORTED y latencia: contención en documentos calientes
[CASO]— Bases de datos NoSQL - [CASO] Se ha filtrado una clave JSON de service account en un repositorio público: respuesta al incidente
[CASO]— Seguridad / Respuesta a incidentes - [CASO] Latencia elevada entre servicios desplegados en regiones distintas
[CASO]— Redes / Rendimiento - [CASO] Errores 429
RESOURCE_EXHAUSTEDen producción: cuotas de GCP alcanzadas[CASO]— Operación / Cuotas - [CASO] Migración de AWS a GCP de una plataforma de microservicios: estrategia y mapeo de servicios
[CASO]— Arquitectura / Migración - [CASO] Incidente: Cloud Run devuelve errores porque alcanzó su límite de instancias
[CASO]— Serverless / Operación
🧩 Microfrontends
Sección titulada «🧩 Microfrontends»Carpeta: microfrontends/ · 30 preguntas
Microfrontends — Fundamentos y Arquitectura
Sección titulada «Microfrontends — Fundamentos y Arquitectura»01-fundamentos-y-arquitectura.md · 18 preguntas
- ¿Qué son los microfrontends y cuándo NO deberías usarlos? — Fundamentos
- Patrones de composición: build-time, server-side, edge-side y client-side — Fundamentos
- Module Federation en webpack 5: ¿cómo funciona y cómo se configura? — Module Federation
shared,singletony la negociación de versiones: ¿cómo evitas dos Reacts en la página? — Module Federation- Remotes dinámicos: cargar microfrontends cuya URL no se conoce en build — Module Federation
- Module Federation 2.0 y Rspack: ¿qué cambia respecto a MF clásico? — Module Federation
- single-spa: arquitectura, ciclo de vida y cuándo elegirlo sobre Module Federation — Frameworks de orquestación
- Import maps nativos y web components como base de microfrontends sin lock-in de bundler — Estándares web
- iframes para microfrontends: ¿cuándo son la respuesta correcta? — Composición
- Routing en una arquitectura shell/container: ¿quién es dueño de la URL? — Arquitectura
- Comunicación entre microfrontends: custom events, pub/sub y por qué minimizarla — Arquitectura
- Diseño de contratos entre equipos: ¿qué es exactamente “el contrato” de un MFE? — Organización y arquitectura
- Design system compartido: versionado de la librería UI entre equipos autónomos — Design system
- Autenticación y sesión compartida entre microfrontends — Seguridad
- Aislamiento de CSS entre microfrontends: shadow DOM, CSS modules, prefijos — Estilos
- Deployment independiente: versionado de remotes, manifests y estrategias de release — Delivery
- Estrategias de testing en microfrontends: E2E cross-MFE y contract testing — Testing
- Performance en microfrontends: duplicación, waterfall de carga y prefetch — Performance
Microfrontends — Casos y Problemas
Sección titulada «Microfrontends — Casos y Problemas»02-casos-y-problemas.md · 12 preguntas
- Dos MFEs cargan versiones incompatibles de React y la app crashea
[CASO]— Module Federation - Un deploy de un remote rompió producción para todos los equipos
[CASO]— Delivery / Gobernanza - El bundle total de la aplicación es gigante por dependencias duplicadas
[CASO]— Performance - Migración incremental de un monolito Angular a microfrontends con React (strangler fig)
[CASO]— Migración / Arquitectura - Los estilos de un MFE pisan a otro en producción
[CASO]— Estilos - Memory leak al montar y desmontar MFEs repetidamente
[CASO]— Runtime / Ciclo de vida - Estado de autenticación desincronizado entre MFEs
[CASO]— Seguridad / Estado - Latencia de carga inicial alta por waterfall de remotes
[CASO]— Performance - Un equipo necesita releases independientes pero el design system introduce breaking changes
[CASO]— Design system / Gobernanza - SSR con microfrontends: Next.js multi-zone y sus límites
[CASO]— SSR / Arquitectura - ¿Monorepo con módulos o microfrontends reales? Análisis organizacional y ley de Conway
[CASO]— Arquitectura / Organización - Observabilidad y error tracking por equipo: ¿de quién es este error en producción?
[CASO]— Observabilidad
🔐 Seguridad y Vulnerabilidades
Sección titulada «🔐 Seguridad y Vulnerabilidades»Carpeta: seguridad-vulnerabilidades/ · 42 preguntas
OWASP Top 10 y Vulnerabilidades Comunes
Sección titulada «OWASP Top 10 y Vulnerabilidades Comunes»01-owasp-y-vulnerabilidades.md · 18 preguntas
- ¿Qué es Broken Access Control (A01) y por qué encabeza el OWASP Top 10? — OWASP Top 10
- ¿Qué son los fallos criptográficos (A02) y cómo se evitan en un backend? — OWASP Top 10
- Explica las inyecciones (SQL, NoSQL, command) y cómo prevenirlas de forma sistemática — OWASP Top 10
- ¿Qué es Insecure Design (A04) y en qué se diferencia de un bug de implementación? — OWASP Top 10
- ¿Qué es Security Misconfiguration (A05) y cómo se gestiona a escala? — OWASP Top 10
- Componentes vulnerables y ataques de supply chain (A06): ¿cómo gestionas el riesgo de terceros? — OWASP Top 10 / Supply chain
- Fallos de identificación y autenticación (A07): errores comunes y diseño robusto de login — OWASP Top 10 / Autenticación
- Fallos de integridad de software y datos (A08): CI/CD, actualizaciones y deserialización — OWASP Top 10 / Integridad
- Logging y monitoring insuficiente (A09): ¿qué registrar, qué no, y cómo detectar ataques? — OWASP Top 10 / Detección
- Server-Side Request Forgery (SSRF, A10): riesgo en la nube y defensas — OWASP Top 10 / SSRF
- XSS y Content Security Policy: modelo de amenaza y defensa en capas — Web / XSS
- CSRF y SameSite: ¿sigue siendo relevante y cómo se defiende hoy? — Web / CSRF
- Deserialización insegura en Java y Node: ¿por qué es tan peligrosa y cómo se evita? — Deserialización
- JWT: errores comunes (alg none, secretos débiles, audience/issuer, revocación) y uso correcto — Autenticación / JWT
- OAuth2 y OIDC: flujos correctos, PKCE y errores comunes de implementación — Autenticación / OAuth2-OIDC
- Secrets management: ciclo de vida, rotación y detección de secretos en repositorios — Gestión de secretos
- Dependencias vulnerables: SCA, priorización con CVSS/EPSS y respuesta a un CVE crítico
[CASO]— Supply chain / Gestión de vulnerabilidades - Seguridad en contenedores y Kubernetes: imágenes, least privilege, network policies y pod security — Contenedores / Kubernetes
Seguridad en Microservicios
Sección titulada «Seguridad en Microservicios»02-seguridad-en-microservicios.md · 12 preguntas
- ¿Qué significa Zero Trust aplicado a la comunicación entre microservicios? — Arquitectura / Zero Trust
- mTLS y service mesh: ¿qué aportan y qué problemas no resuelven? — Comunicación segura / Service mesh
- Autenticación servicio-a-servicio: client credentials, workload identity y sus trade-offs — Autenticación M2M
- Propagación de la identidad del usuario entre servicios: JWT passthrough vs token exchange — Identidad distribuida
- API Gateway como punto de enforcement: qué centralizar y qué no — Arquitectura / Gateway
- Rate limiting y protección contra abuso en APIs distribuidas — Anti-abuso
- Validación de entrada en cada servicio: ¿por qué no basta validar en el borde? — Defensa en profundidad
- Cifrado en tránsito y en reposo en una plataforma de microservicios — Protección de datos
- Multi-tenancy: estrategias de aislamiento de datos y prevención de fugas entre tenants — Multi-tenancy / Aislamiento
- Auditoría y trazabilidad en sistemas distribuidos: diseño de un audit trail confiable — Auditoría / Observabilidad
- Seguridad en pipelines CI/CD: firmado de artefactos, SLSA y protección de la cadena de despliegue — CI/CD / Supply chain
- Gestión continua de vulnerabilidades en una plataforma de microservicios: escaneo y SLAs de remediación — Gestión de vulnerabilidades
Casos e Incidentes de Seguridad
Sección titulada «Casos e Incidentes de Seguridad»03-casos-e-incidentes.md · 12 preguntas
- Encuentran una API key commiteada en el repositorio
[CASO]— Respuesta a incidentes / Secretos - Anuncian un CVE crítico en una librería usada en 40 servicios
[CASO]— Respuesta a incidentes / Supply chain - Detectas tráfico anómalo que sugiere una cuenta de servicio comprometida
[CASO]— Respuesta a incidentes / Identidad M2M - Un pentest reporta un IDOR en tu API
[CASO]— Respuesta a incidentes / Broken Access Control - Encuentran datos sensibles en los logs
[CASO]— Respuesta a incidentes / Fuga de datos - Un tercero reporta que tu endpoint permite SSRF hacia la metadata del cloud
[CASO]— Respuesta a incidentes / SSRF - Un token JWT robado está siendo usado en producción
[CASO]— Respuesta a incidentes / JWT - Ataque de credential stuffing en el login
[CASO]— Respuesta a incidentes / Autenticación - Una dependencia de npm resulta comprometida (supply chain)
[CASO]— Respuesta a incidentes / Supply chain - Datos de clientes expuestos por un bucket S3 mal configurado
[CASO]— Respuesta a incidentes / Misconfiguration - Certificado TLS expirado en producción
[CASO]— Respuesta a incidentes / Disponibilidad - Diseñar un programa de seguridad para un equipo que no tiene ninguno
[CASO]— Estrategia / Programa de seguridad
🔄 Versionamiento de APIs
Sección titulada «🔄 Versionamiento de APIs»Carpeta: versionamiento-apis/ · 40 preguntas
Versionamiento de APIs
Sección titulada «Versionamiento de APIs»01-versionamiento-de-apis.md · 16 preguntas
- ¿Qué estrategias existen para versionar una API REST y cuáles son los trade-offs reales de cada una? — REST / Diseño de APIs
- ¿Qué es exactamente un breaking change en una API? Da una lista exhaustiva, incluyendo casos no obvios — Compatibilidad / Contratos
- Define backward compatibility y forward compatibility con precisión, desde la perspectiva productor/consumidor — Compatibilidad / Fundamentos
- Explica el patrón tolerant reader y la ley de Postel aplicada a APIs. ¿Cuáles son los riesgos de ser demasiado tolerante? — Compatibilidad / Patrones de integración
- ¿Cómo se versionan mensajes y servicios en gRPC/protobuf? Reglas de field numbers,
reserved, y por qué proto3 hizo todo opcional — gRPC / Protobuf - Versionado de schemas de eventos: modos de compatibilidad del Schema Registry (BACKWARD, FORWARD, FULL, TRANSITIVE) y quién migra primero — Eventos / Kafka / Schema Registry
- [CASO] Un equipo añade un campo a un evento Avro y los consumidores de otro equipo empiezan a fallar en producción. Diagnostica y propone la solución
[CASO]— Eventos / Kafka / Schema Registry - ¿Por qué GraphQL “no se versiona”? ¿Cómo se evoluciona un schema GraphQL y qué riesgos tiene ese modelo? — GraphQL
- ¿Cómo se aplica SemVer a APIs HTTP y a librerías internas? ¿Qué significa cada número y por qué 0.x es peligroso? — SemVer / Gestión de dependencias
- Contract-first con OpenAPI: ¿cómo se usa el contrato para generar código y detectar breaking changes automáticamente en CI? — API-first / OpenAPI / CI-CD
- ¿Cómo se depreca formalmente una versión de API? Headers
DeprecationySunset, comunicación, métricas y brownouts — Ciclo de vida / Deprecación - ¿Qué papel juega un API Gateway en el versionado? Routing por versión y transformaciones para mantener versiones viejas sin duplicar backend — API Gateway / Infraestructura
- Hypermedia/HATEOAS: ¿qué aporta realmente a la evolución de una API y por qué casi nadie lo usa? — REST / Hypermedia
- Idempotencia y versionado de comportamiento: ¿por qué cambiar la semántica de una operación es un breaking change aunque el esquema no cambie? — Semántica de operaciones / Diseño
- Versionado de SDKs cliente: relación entre versión del SDK y versión de la API, generación automática y el modelo de pinning de Stripe — SDKs / Developer Experience
- [CASO] Tras un release, un endpoint empieza a devolver 400 a un subconjunto de clientes que “no cambiaron nada”. El equipo solo endureció la validación de un campo. Analiza el incidente y define cómo prevenirlo
[CASO]— Compatibilidad / Operación
Versionamiento de Servicios y Datos
Sección titulada «Versionamiento de Servicios y Datos»02-versionamiento-de-servicios-y-datos.md · 14 preguntas
- Explica el patrón expand/contract (parallel change) para evolucionar una base de datos sin downtime — Bases de datos
- ¿Cómo estructuras migraciones de esquema con Flyway o Liquibase para despliegues sin downtime? — Bases de datos
- [CASO] Debes hacer backfill de 200M de filas y migrar la lectura a una tabla nueva sin ventana de mantenimiento. ¿Cómo secuencias dual write, backfill y dual read?
[CASO]— Bases de datos - ¿Cómo versionas mensajes en Kafka/RabbitMQ/SQS cuando conviven consumidores con distintas versiones? — Mensajería
- [CASO] Publicas eventos en un topic Kafka consumido por 8 equipos, algunos externos a tu organización, y necesitas un breaking change. ¿Qué haces?
[CASO]— Mensajería - ¿Por qué un rolling deployment exige compatibilidad N/N-1 y qué superficies de contrato afecta? — Despliegue
- [CASO] Vas a hacer un despliegue blue/green (y luego canary) de un servicio que incluye un cambio de esquema. ¿Cómo lo secuencias y qué NO se duplica?
[CASO]— Despliegue - ¿Cuándo usarías feature flags en lugar de (o además de) versionar, y qué deuda generan? — Estrategia de release
- ¿Cómo funcionan los consumer-driven contracts con Pact en CI y qué detectan que los tests E2E no? — Testing de contratos
- ¿Cómo versionas imágenes de contenedor y artefactos para que los despliegues sean reproducibles? — Artefactos y build
- Monorepo vs multirepo: ¿cómo cambia el versionado de servicios y librerías internas en cada modelo? — Organización de código
- [CASO] Tu plataforma interna debe retirar una API usada por 15 equipos. “Que todos migren el mismo sprint” ha fracasado dos veces. Diseña el proceso de coordinación del breaking change
[CASO]— Organización y procesos - ¿Cómo versionas configuración e infraestructura (Terraform, config de aplicación) y por qué el pinning importa? — Infraestructura y configuración
- En event sourcing los eventos almacenados son inmutables y viven para siempre. ¿Cómo evolucionas sus esquemas? — Event sourcing
Casos y Problemas de Versionamiento
Sección titulada «Casos y Problemas de Versionamiento»03-casos-y-problemas.md · 10 preguntas
- Renombrar un campo usado por 15 consumidores (expand/contract end-to-end)
[CASO]— Evolución de contratos - Un equipo rompió a 3 servicios en producción con un breaking change sin avisar
[CASO]— Gestión de incidentes y prevención - Migrar una columna VARCHAR a JSONB en una tabla de 500M filas sin downtime
[CASO]— Migraciones de esquema de BD - Deprecar /v1 con clientes móviles antiguos que no actualizan
[CASO]— Deprecación y ciclo de vida - Evolucionar un evento de Kafka con 8 consumidores en distintos equipos
[CASO]— Evolución de eventos y esquemas - Rollback de un deploy cuyo nuevo esquema ya escribió datos
[CASO]— Despliegue y compatibilidad de datos - Unificar dos APIs duplicadas que divergieron entre equipos
[CASO]— Consolidación y arquitectura - Un cliente externo se integró a un campo interno no documentado (ley de Hyrum)
[CASO]— Contratos implícitos - Versionar una librería interna compartida por 30 servicios
[CASO]— Dependencias y librerías compartidas - Diseñar el proceso de governance de APIs para 50 equipos
[CASO]— Governance y plataforma
📨 Mensajería y Event-Driven (Kafka · RabbitMQ · Colas)
Sección titulada «📨 Mensajería y Event-Driven (Kafka · RabbitMQ · Colas)»Carpeta: mensajeria-eventos/ · 59 preguntas
Fundamentos de Mensajería y Arquitecturas Event-Driven — Preguntas de Entrevista Senior
Sección titulada «Fundamentos de Mensajería y Arquitecturas Event-Driven — Preguntas de Entrevista Senior»01-fundamentos-de-mensajeria.md · 15 preguntas
- ¿Por qué meterías una cola entre dos servicios? ¿Qué compras y qué pagas? — Arquitectura
- Semánticas de entrega: at-most-once, at-least-once, exactly-once. ¿Por qué exactly-once end-to-end es un mito? — Semánticas de entrega
- ¿Cómo haces un consumidor idempotente? Claves de idempotencia, tabla inbox, dedupe y TTL — Fiabilidad
- Patrón outbox transaccional: ¿por qué el dual write está prohibido y cómo lo implementa Debezium? — Patrones de integración
- Ordering: ¿qué garantiza realmente un broker y qué haces cuando el orden importa de verdad? — Ordering / Particionado
- Backpressure y colas: ley de Little, productor más rápido que el consumidor, límites y load shedding — Capacidad / Performance
- Dead letter queues: ¿cuándo envías un mensaje, qué metadatos guardas y cómo reprocesas? — Fiabilidad
- Event notification vs event-carried state transfer vs event sourcing: diferencias y cuándo usar cada uno — Patrones event-driven
- Event sourcing en serio: qué resuelve, qué complica y cuándo NO usarlo — Event Sourcing
- CQRS: ¿qué es de verdad, qué relación tiene con los eventos y cómo manejas la consistencia eventual en la UI? — CQRS
- Sagas: coreografía vs orquestación, compensaciones, timeouts y dónde vive el estado — Transacciones distribuidas
- Colas de comando vs topics de eventos: ¿qué diferencia semántica hay y quién es dueño del contrato? — Contratos / Diseño
- Schema evolution en eventos: compatibilidad backward/forward/full, schema registry y cómo migrar consumidores — Schema evolution
- Reintentos: backoff exponencial con jitter, retry topics, retry budget y cuándo NO reintentar — Resiliencia
- [CASO] Comunicación entre el servicio de pedidos y 6 servicios downstream
[CASO]— Diseño de sistemas
Apache Kafka — Preguntas de Entrevista Senior
Sección titulada «Apache Kafka — Preguntas de Entrevista Senior»02-kafka.md · 18 preguntas
- Arquitectura de Kafka: brokers, topics, particiones, réplicas e ISR. ¿Por qué decimos que es un log distribuido y no una cola? — Arquitectura
- KRaft vs ZooKeeper: ¿qué cambió exactamente y por qué el proyecto migró? — Arquitectura
- El productor por dentro: batching,
linger.ms, compresión, particionador sticky,ackse idempotencia (PID + secuencias) — Productor - ¿Cuándo se puede perder un mensaje en Kafka? Enumera todas las vías — Fiabilidad
- Consumer groups y rebalancing: eager vs cooperative, static membership y los dos timeouts — Consumidor
- Gestión de offsets: auto-commit, commit manual, batch vs record, y qué pasa tras un crash — Consumidor
- Exactly-once en Kafka: transacciones,
read_committed,transactional.idy zombie fencing. ¿Qué cubre y qué no? — Fiabilidad - ¿Cómo eliges el número de particiones de un topic y qué cuesta cambiarlo después? — Diseño
- Retención vs compactación:
delete,compact, tombstones y casos de uso de compacted topics — Almacenamiento - Consumer lag: qué es exactamente, cómo se mide y cómo se ataca — Operación
- Kafka Streams: topología, state stores, RocksDB, changelogs, ventanas y EOS. ¿Cuándo Streams y cuándo un consumidor plano? — Procesamiento
- Schema Registry: formatos, modos de compatibilidad, subject naming strategies y cómo se despliega un cambio de esquema — Ecosistema
- Réplicas y durabilidad:
replication.factor,min.insync.replicas, unclean election y rack awareness — el triángulo durabilidad/disponibilidad/latencia — Fiabilidad - Kafka Connect: workers, source/sink, converters, DLQ y casos típicos (CDC, data lake) — Ecosistema
- Tuning de rendimiento: ¿por qué Kafka es rápido y dónde está normalmente el cuello de botella? — Rendimiento
- Multi-cluster y disaster recovery: MirrorMaker 2, Cluster Linking, active-passive vs active-active, offset translation y RPO/RTO — Operación / DR
- [CASO] El lag del consumer group de facturación crece sin parar desde ayer, pero el throughput de entrada no ha cambiado. Diagnostica
[CASO]— Operación / Troubleshooting - [CASO] Tras un failover de broker aparecieron miles de duplicados en downstream. ¿Por qué y cómo lo evitas?
[CASO]— Fiabilidad / Troubleshooting
RabbitMQ y Otros Brokers (SQS · SNS · NATS · Pulsar) — Preguntas de Entrevista Senior
Sección titulada «RabbitMQ y Otros Brokers (SQS · SNS · NATS · Pulsar) — Preguntas de Entrevista Senior»03-rabbitmq-y-otros-brokers.md · 14 preguntas
- Explica el modelo AMQP 0-9-1: exchanges, bindings, routing keys y colas. ¿Cómo modelarías un routing complejo? — RabbitMQ / AMQP
- Acks de consumidor y publisher confirms en RabbitMQ: ¿qué garantiza cada mecanismo y qué pierdes sin cada uno? — RabbitMQ / Fiabilidad
- Quorum queues vs classic mirrored queues: ¿por qué las mirrored están deprecadas y qué límites tienen las quorum? — RabbitMQ / Alta disponibilidad
basic.qos/ prefetch: ¿qué controla exactamente y cómo lo dimensionas? — RabbitMQ / Rendimiento- TTL, dead-letter exchanges y colas de retraso: patrón de retry con backoff y sus trampas — RabbitMQ / Patrones
- Flow control en RabbitMQ: memory/disk alarms y credit flow. ¿Qué ve el productor cuando el broker se defiende? — RabbitMQ / Operación
- Clustering y particiones de red en RabbitMQ:
pause_minority, ¿por qué no cruzar regiones, y qué papel juegan federation y shovel? — RabbitMQ / Distribución - RabbitMQ Streams: ¿qué añaden frente a las colas clásicas y cuándo los elegirías frente a Kafka? — RabbitMQ / Streams
- Kafka vs RabbitMQ: criterio de elección de un senior — Arquitectura / Comparativa
- SQS y SNS: standard vs FIFO, visibility timeout, DLQs y el patrón fan-out. ¿Qué límites y costes hay que conocer? — AWS / Mensajería gestionada
- NATS y JetStream: ¿qué garantiza cada capa y dónde encajan frente a Kafka y RabbitMQ? — NATS
- Apache Pulsar: separación compute/storage, multi-tenancy y tipos de subscription. ¿Cuándo tendría sentido frente a Kafka? — Pulsar
- Producción: la memoria del nodo RabbitMQ sube hasta disparar la memory alarm y los publishers se quedan colgados. Las colas crecen. Diagnostica y resuelve.
[CASO]— RabbitMQ / Operación - Un patrón de retry con
requeue=truey un mensaje envenenado tiene a 4 consumidores al 100% de CPU en bucle. ¿Qué pasó y cómo se arregla bien?[CASO]— RabbitMQ / Patrones de error
Mensajería: Casos y Problemas de Producción — Preguntas de Entrevista Senior
Sección titulada «Mensajería: Casos y Problemas de Producción — Preguntas de Entrevista Senior»04-casos-y-problemas.md · 12 preguntas
- Rebalance storm: el consumer group entra en bucle de rebalanceos
[CASO]— Kafka / Consumer groups - Partición caliente: una de 24 concentra el 40% del tráfico
[CASO]— Kafka / Particionado - Duplicados masivos tras un incidente: cobros repetidos downstream
[CASO]— Kafka / Idempotencia y offsets - Mensajes fuera de orden tras escalar de 1 a 8 consumidores
[CASO]— Kafka / Ordering - El outbox se atasca: eventos que llegan horas tarde
[CASO]— Outbox pattern / CDC - DLQ desbordada un lunes: 200.000 mensajes y nadie sabe cuáles reprocesar
[CASO]— Operación / Dead-letter queues - Kafka “pierde” mensajes de auditoría: la conciliación mensual detecta huecos
[CASO]— Kafka / Durabilidad - RabbitMQ: la cola que crece hasta tirar el nodo cada Black Friday
[CASO]— RabbitMQ / Capacidad y backpressure - Schema roto en cascada: cinco consumidores muertos a la vez
[CASO]— Contratos de eventos / Schema evolution - Consumidor lento por dependencia: cada mensaje llama a una API con p99 de 3 s
[CASO]— Consumidores / Throughput y dependencias - Saga colgada: pedidos 6 horas en RESERVANDO_STOCK
[CASO]— Sagas / Workflows distribuidos - Migración de RabbitMQ a Kafka en caliente, sin parar producción
[CASO]— Migraciones / Arquitectura de mensajería
🧠 Casos de Estudio Transversales
Sección titulada «🧠 Casos de Estudio Transversales»Carpeta: casos-de-estudio/ · 50 preguntas
Casos de estudio: System Design (nivel senior)
Sección titulada «Casos de estudio: System Design (nivel senior)»01-system-design.md · 10 preguntas
- Sistema de pagos idempotente multi-proveedor
[CASO]— Pagos / Consistencia - Rate limiter distribuido
[CASO]— Infraestructura / Tráfico - Sistema de notificaciones (push/email/SMS) a 50M usuarios
[CASO]— Mensajería / Fan-out - Carrito de compras con inventario en tiempo real (overselling)
[CASO]— E-commerce / Concurrencia - Plataforma de pedidos tipo delivery con tracking en tiempo real
[CASO]— Marketplace / Tiempo real - Autenticación y autorización para 100 microservicios
[CASO]— Seguridad / Plataforma - Feed de actividad
[CASO]— Social / Lectura intensiva - Sistema de reservas con alta concurrencia (asientos/citas)
[CASO]— Reservas / Concurrencia - API pública con tiers de rate limiting y facturación por uso
[CASO]— Plataforma / Monetización - Migración de un monolito de e-commerce a microservicios (strangler fig)
[CASO]— Arquitectura evolutiva / Migración
Casos de estudio: Incidentes en producción (nivel senior)
Sección titulada «Casos de estudio: Incidentes en producción (nivel senior)»02-incidentes-en-produccion.md · 10 preguntas
- El checkout cae cada día a las 12:00 exactas
[CASO]— Diagnóstico sistemático - La latencia p99 se degrada tras cada deploy, pero p50 está bien
[CASO]— Performance / Deploys - Un retry storm tumbó la plataforma completa
[CASO]— Resiliencia / Fallos en cascada - Datos inconsistentes entre el servicio de pedidos y el de inventario (saga rota)
[CASO]— Consistencia distribuida - La caché se cayó y la base de datos no aguantó
[CASO]— Resiliencia / Caching - El canary pasó todas las métricas pero rompió a un cliente enterprise
[CASO]— Deploys / Observabilidad segmentada - Duplicación de cobros a clientes
[CASO]— Pagos / Idempotencia - Funciona en staging pero degrada en producción
[CASO]— Entornos / Metodología - Una dependencia externa (pasarela de pagos) está lenta y arrastra todo el sistema
[CASO]— Resiliencia / Aislamiento de fallos - Pérdida de mensajes entre dos servicios detectada por conciliación
[CASO]— Mensajería / Auditoría de datos
Casos de estudio: Análisis de Nuevos Requerimientos (nivel senior)
Sección titulada «Casos de estudio: Análisis de Nuevos Requerimientos (nivel senior)»03-nuevos-requerimientos.md · 10 preguntas
- “Necesitamos que los usuarios puedan pagar en cuotas”
[CASO]— Descubrimiento / Pagos - “Es solo añadir un campo al formulario”
[CASO]— Análisis de impacto / Contratos - Feature nueva sobre un monolito legacy sin tests
[CASO]— Legacy / Estrategia técnica - “Para el viernes”
[CASO]— Negociación / Deuda técnica - Integración con un tercero mal documentado
[CASO]— Integraciones / Riesgo - “Quiero un dashboard en tiempo real”
[CASO]— Producto / Datos - Romper un contrato público con clientes externos activos
[CASO]— APIs públicas / Versionado - Multi-tenancy sobrevenida
[CASO]— Arquitectura / B2B - “Hazlo configurable”: el motor de reglas prematuro
[CASO]— Diseño / Alcance - Herencia de un requerimiento a medio hacer
[CASO]— Continuidad / Arqueología
Casos de estudio: Diagnóstico entre Entornos — QA, Staging y Producción (nivel senior)
Sección titulada «Casos de estudio: Diagnóstico entre Entornos — QA, Staging y Producción (nivel senior)»04-diagnostico-multientorno.md · 10 preguntas
- El bug que solo se reproduce en QA (nunca en local ni en prod)
[CASO]— Entornos de QA - Todo verde en staging, cae en producción a la primera hora pico
[CASO]— Staging vs realidad - Config drift: el hotfix manual de hace 6 meses
[CASO]— Configuration drift - “Funciona en mi máquina”: el contenedor pasa CI pero falla en el cluster
[CASO]— Contenedores / Runtime - Certificados y DNS: SSLHandshakeException solo en producción
[CASO]— TLS / Redes - La migración de BD que pasó en staging y revienta en producción
[CASO]— Migraciones de BD - Feature flags divergentes: el bug imposible de reproducir
[CASO]— Feature flags - Dependencias distintas por entorno: el mismo commit produce artefactos diferentes
[CASO]— Builds reproducibles - Datos de prueba vs datos reales: el buscador perfecto que enloquece en prod
[CASO]— Datos de prueba - Diseña la estrategia de entornos desde cero para 15 microservicios
[CASO]— Diseño de entornos
Casos de estudio: Versionado, Releases y Gestión del Cambio (nivel senior)
Sección titulada «Casos de estudio: Versionado, Releases y Gestión del Cambio (nivel senior)»05-versionado-y-releases.md · 10 preguntas
- Diseña la estrategia de branching para 10 equipos sobre 40 microservicios
[CASO]— Branching / Delivery - Hotfix urgente con main 30 commits por delante
[CASO]— Hotfix / Incident response - El rollback que no se puede hacer: la migración de BD ya corrió
[CASO]— Migraciones / Rollback - Release train vs continuous deployment para una plataforma B2B
[CASO]— Release management / Cadencia - Versionar microservicios: ¿semver de servicios sirve de algo?
[CASO]— Versionado / Contratos - Monorepo vs multirepo para 40 servicios y 10 equipos
[CASO]— Repositorios / Tooling - La librería compartida infernal:
commonsusada por 30 servicios[CASO]— Librerías internas / Dependencias - Dos features de dos equipos deben salir juntas
[CASO]— Coordinación / Acoplamiento de release - Deprecar la v1 de una API pública con 200 integraciones activas
[CASO]— API pública / Deprecation - Auditoría: “¿qué versión exacta de qué corría en producción el 3 de marzo?”
[CASO]— Trazabilidad / Compliance