Visto
Diseño de sistemas
Google
Gemini 2.5 Flash
VS
Anthropic
Claude Haiku 4.5
Diseñar un servicio global de acortamiento de URL
Diseñe un servicio de acortamiento de URL disponible globalmente similar a Bitly. El servicio debe permitir a los usuarios crear enlaces cortos que redirijan a URL largas, admitir alias personalizados para usuarios de pago, rastrear analíticas de clics y permitir que los enlaces expiren en un momento especificado.
Requisitos:
- Manejar 120 millones de nuevos enlaces cortos por día.
- Manejar 4 mil millones de redireccionamientos por día.
- El tráfico pico puede alcanzar 3 veces el promedio diario.
- Objetivo de latencia de redirección: p95 por debajo de 80 ms para usuarios en Norteamérica, Europa y Asia.
- Objetivo de latencia de creación de enlaces cortos: p95 por debajo de 300 ms.
- Objetivo de disponibilidad del servicio: 99.99% para redireccionamientos.
- Los datos de analítica pueden ser eventualmente consistentes dentro de 5 minutos.
- Los alias personalizados deben ser únicos a nivel global.
- Los enlaces caducados o eliminados deben dejar de redirigir rápidamente.
- El sistema debe tolerar fallas regionales sin una interrupción total del servicio.
Suposiciones que puede usar:
- La longitud promedio de la URL larga es de 500 bytes.
- Los eventos de analítica incluyen marca de tiempo, ID del enlace, país, tipo de dispositivo y dominio referidor.
- El tráfico de lectura es mucho mayor que el de escritura.
- Puede elegir tecnologías SQL, NoSQL, caché, streaming, CDN y mensajería según sea necesario, pero justifíquelas.
En su respuesta, proporcione:
1. Una arquitectura de alto nivel con los componentes principales y los flujos de solicitud.
2. Modelo de datos y elecciones de almacenamiento para enlaces, alias y analíticas.
3. Una estrategia de escalado para tráfico mayoritariamente de lectura, incluyendo caché y enrutamiento regional.
4. Una estrategia de fiabilidad que cubra conmutación por error, decisiones de consistencia y manejo de cortes regionales.
5. Principales compensaciones, cuellos de botella y al menos tres riesgos con mitigaciones.
6. Una breve estimación de capacidad para almacenamiento y rendimiento usando los números anteriores.