Cola Concurrente para Sistema de Reservas de Viajes en Buenos Aires
Visión general
De qué trata este proyecto.
Construye una versión refactorizada del servicio en Java 21 usando ConcurrentHashMap, primitivas de java.util.concurrent.atomic y, si procede, ReadWriteLock. Diseña el flujo para que dos agentes nunca puedan reservar el mismo asiento, sin caer en synchronized global. Implementa una suite de tests con un generador de carga concurrente (al menos 16 threads) y verifica invariantes usando jcstress. Mide throughput de reservas/segundo antes y después. Entrega el código, los tests, el reporte de jcstress y un memo de 4 páginas explicando las decisiones a la persona arquitecta del equipo.
El Briefing
Lo que harás y lo que demostrarás.
Refactorizar un servicio Java con sincronización agresiva hacia primitivas concurrentes correctas, evitando race conditions y aumentando throughput de forma medida.
Earning criteria — what you'll demonstrate
- Diferenciar entre synchronized, ReentrantLock y primitivas atomic
- Diseñar invariantes verificables con jcstress
- Medir mejoras de throughput de forma honesta
- Comunicar decisiones de concurrencia a una audiencia técnica
Encaje académico
Dónde encaja esto en tus estudios.
Afina las mismas habilidades que tu titulación espera de ti.
Habilidades
Habilidades que demostrarás.
Cada una aparece en tu credencial verificada.
Carreras
Roles para los que esto te prepara.
Títulos reales. Puentes de habilidades reales. Elige el que más se acerque a tu trayectoria.
Trayectorias profesionales que esto construye
Roles canónicosIngeniero de Backend
Eliminar race conditions con primitivas concurrentes correctas y medir throughput es trabajo backend muy demandado en SaaS B2B con concurrencia real.
Este proyecto afina
- java-concurrency
- race-conditions
- concurrent-data-structures
Ingeniero de Software
Quien sabe usar jcstress y JMH para validar concurrencia se diferencia inmediatamente del resto del mercado junior.
Este proyecto afina
- concurrent-programming
- testing
- performance-engineering