System Design Factory

Trilha 1 · Fundamentos

Encurtador de URL

Bilhões de códigos únicos, redirecionamentos em escala e um link desativado que para de verdade.

Grátis Fácil 11 min no Guiado 6 Checks

O que você pratica

É por aqui que a maioria começa: um sistema pequeno com uma parte difícil. Você distribui códigos que nunca colidem, deixa os redirecionamentos rápidos com cache e ainda faz um link desativado parar na hora certa.

O problema

Projete um serviço que transforma uma URL longa numa curta e leva quem abre o link curto até a original.

O mapa de código para URL é trivial. As partes difíceis são distribuir bilhões de códigos sem nunca sobrescrever um, e manter os redirecionamentos rápidos enquanto um link recém-desativado para de funcionar quando você disse que pararia, e não "quando o cache expirar".

Uma pessoa cria um link curto, com validade opcional. Qualquer um pode abri-lo e é redirecionado. O dono, ou a moderação, pode desativar um link. Os cliques são contados, sem prometer uma contagem exata. Os redirecionamentos precisam ser rápidos e muito disponíveis; as métricas podem atrasar alguns minutos.