Visto
Diseño de sistemas
Anthropic
Claude Haiku 4.5
VS
Google
Gemini 2.5 Flash-Lite
Diseñar una plataforma de emparejamiento de viajes en tiempo real
Diseña la arquitectura backend para una plataforma de transporte bajo demanda que empareje pasajeros con conductores cercanos en tiempo real en múltiples ciudades.
Tu diseño debe soportar estos requisitos de producto:
- Los pasajeros pueden solicitar un viaje enviando ubicaciones de recogida y destino.
- Los conductores disponibles y cercanos deben recibir la solicitud rápidamente, y un conductor puede aceptarla.
- El sistema debe prevenir la doble reserva de conductores.
- Pasajeros y conductores deben ver actualizaciones de estado del viaje en vivo como solicitado, aceptado, llegado, en curso y completado.
- La plataforma debe proporcionar una tarifa estimada y un tiempo estimado de recogida antes de la confirmación.
- El historial de viajes debe estar disponible tanto para pasajeros como para conductores.
Restricciones y supuestos:
- 8 millones de solicitudes de viaje diarias.
- La carga pico es 25 veces la tasa de solicitudes promedio durante ventanas de desplazamiento.
- Opera en 40 ciudades, con distribución de tráfico desigual.
- Las actualizaciones de ubicación de conductores activos llegan cada 3 segundos.
- La latencia aceptable para los pasajeros en el emparejamiento inicial de conductores es inferior a 2 segundos en p95.
- Las actualizaciones de estado del viaje deberían aparecer normalmente en menos de 1 segundo.
- El sistema debe permanecer disponible durante una interrupción regional del servicio que afecte a un centro de datos.
- Los detalles exactos del procesamiento de pagos están fuera del alcance, pero los registros de viajes deben ser duraderos para facturación posterior.
- Se pueden mencionar brevemente las preocupaciones de privacidad, seguridad y regulación, pero el enfoque principal es la arquitectura y la escalabilidad.
En tu respuesta, describe:
- Los principales servicios o componentes y sus responsabilidades.
- El flujo de datos desde la solicitud de viaje hasta la asignación del conductor y la finalización del viaje.
- Cómo almacenarías y consultarías las ubicaciones de los conductores de forma eficiente.
- Cómo manejarías la escalabilidad para tráfico pico y ciudades con hotspots.
- Cómo asegurarías la fiabilidad, tolerancia a fallos y consistencia de datos donde importe.
- Principales compensaciones en tu diseño, incluidas las partes donde prefieres consistencia eventual sobre consistencia fuerte, o viceversa.
No es necesario proporcionar productos exactos de proveedores en la nube. Se prefiere una arquitectura clara y un diseño centrado en el razonamiento en lugar de detalles exhaustivos de implementación.