Diseña un acortador de URLs (como bit.ly).
Respuesta
- Requisitos: acortar, redirigir, alias propio y caducidad opcionales; mucha lectura (por ejemplo 100 lecturas por escritura).
- API:
POST /urls {long_url} → código corto; GET /{code} → redirección 301/302 (302 si quieres analítica de clics). - Generación del código: base62 de un ID único (secuencia de base de datos o IDs tipo Snowflake); 7 caracteres ≈ 3,5 billones de códigos. O hash + comprobación de colisiones.
- Almacenamiento: tabla clave-valor
code → long_url, created_at, expires_at. - Guarda en caché los códigos populares en Redis; redirecciones en el edge o CDN.
- Analítica como eventos asíncronos a una cola.
- Abuso: rate limits, escaneo de URLs maliciosas.
Practica esta pregunta en Repaso