Builder Pattern para objetos con múltiples parámetros en Java
Cómo usar el patrón Builder para crear objetos con múltiples parámetros legibles, inmutables y con validación: desde la implementación manual hasta Lombok @Builder y record.
Patrones de diseño, diseño de sistemas, microservicios y las piezas de los sistemas grandes.
Cómo usar el patrón Builder para crear objetos con múltiples parámetros legibles, inmutables y con validación: desde la implementación manual hasta Lombok @Builder y record.
Entiende e implementa dos estrategias de caché comunes: cache-aside y write-through, junto con cómo elegir un TTL apropiado en Spring Boot 3.
Comprende cómo Kafka asigna particiones al consumer group, cuándo ocurre el rebalance y cómo reducir su impacto en aplicaciones Spring Boot
Estudio de caso de diseño de sistema de subastas - modelo de datos, API, manejo de bids concurrentes con actualización condicional, Redis Lua, prevención de sniping y cierre seguro.
Estudio de caso del diseño de sistema de códigos de descuento: nunca exceder límites en flash sales, usando UPDATE atómico, Lua de Redis, Kafka y mecanismo de reserva con expiración.
Estudio de caso diseñando un sistema de seguimiento de pedidos y ubicación del repartidor en tiempo real con Spring Boot, Kafka, Redis GEO y SSE. Análisis de contención, consistencia y picos de carga.
Estudio de caso de diseño de sistema de almacenamiento de archivos: requisitos, modelo de datos, API de carga por chunks, compartición, sincronización, manejo de conflictos y picos de carga.
Cómo implementar un distributed lock usando SET NX PX y scripts Lua, usar Redisson con watchdog, escribir tests con Testcontainers y evitar errores comunes.
Cómo usar el patrón Saga para mantener la consistencia de datos entre múltiples microservicios sin necesidad de 2PC, con ejemplos de orquestación en Java 21 y pruebas.
Aprende cómo PostgreSQL maneja transacciones, los cuatro niveles de aislamiento, fenómenos como lost update y write skew, y cómo configurar y reintentar en Spring Boot.
Usa el filtro Bloom en Redis (vía Redisson) para bloquear solicitudes a claves inexistentes antes de que atraviesen la caché y accedan a la base de datos.
Usa Debezium para capturar cambios de PostgreSQL, envíalos a Kafka y consume con Spring Boot, eliminando el riesgo del dual-write.
Estudio de caso en diseño de cartera digital: modelo de libro de contabilidad de partida doble, API idempotente, bloqueos contra deadlock, outbox con Kafka y cómo resistir picos de carga.
Estudio de caso de diseño de sistema flash sale con reservas atómicas en Redis Lua, escritura asincrónica de pedidos por Kafka, BD como red de seguridad e inventario devuelto al vencer el plazo.
Estudio de caso del diseño de news feed: requisitos, escala, modelo de datos, API, comparación de fan-out on write y on read, modelo híbrido y manejo de celebrities, consistencia, picos de tráfico.
Caso de estudio de diseño de autocomplete para plataformas de comercio electrónico: requisitos, modelo de datos, API, Redis top-K por prefijo, Kafka, manejo de hot keys y picos de carga.
Estudio de caso de diseño de chat 1-1 y en grupo: modelo de datos con seq, API de envío idempotente, estado de lectura como watermark, outbox + Kafka y manejo de picos de carga.
Estudio de caso del diseño de un sistema de citas médicas con modelo de slots, APIs, técnicas para prevenir duplicados mediante conditional updates e índices únicos, y manejo de picos de tráfico.
Caso de estudio del diseño de un sistema de notificaciones push, email y SMS: modelo de datos, API idempotente, outbox, colas por prioridad, reintentos con backoff y protección contra picos de carga.
Case study de diseño de sistema de pagos: evitar cargos duplicados mediante idempotency keys, conciliación con gateway de pagos, reembolsos seguros ante disputas concurrentes y carga de tráfico imprevista.