- Validación de sesión en memoria
- <5µs
- Niveles en la validación de sesión
- 3
- Tests automatizados
- 32

Zipway es el acortador de URLs que está en producción en shly.pt. Quien tiene cuenta crea enlaces cortos con un slug aleatorio o elegido a mano, puede pausarlos y sigue los clics de cada uno en un panel con estadísticas. Abrir un enlace corto no requiere cuenta, y ese es el camino que tiene que ser rápido.
El proyecto está dividido en dos servicios. La API en Go, con Fiber v3, sigue Clean Architecture: el dominio y los servicios viven en el core y solo conocen interfaces, mientras que los handlers HTTP, el middleware de autenticación y los repositorios de PostgreSQL y Redis quedan fuera, como adaptadores. Todos los endpoints están documentados en OpenAPI y se pueden probar en Swagger. El frontend corre en Next.js 16 con React 19, Prisma sobre PostgreSQL, Better Auth con email, GitHub y Google, y Zod validando los formularios.
Una redirección casi nunca llega a la base de datos. La API busca el slug primero en Redis, donde cada enlace queda en caché durante 24 horas, y solo cuando no lo encuentra consulta PostgreSQL con queries preparadas. El clic se cuenta en segundo plano, así que el visitante es redirigido sin esperar a la escritura, y el proxy de Next.js abandona la API a los 500 ms en lugar de dejar la página colgada.
La autenticación sigue la misma idea. Better Auth emite la sesión en el frontend y la API en Go solo valida la cookie, en una cascada de tres niveles: primero una caché en memoria dentro del propio proceso, que responde en menos de 5 µs, después Redis y solo al final PostgreSQL. El frontend valida y limpia los slugs personalizados antes de llamar a la API, bloquea los que chocan con rutas de la aplicación, aplica rate limiting con Redis por tipo de petición y tiene 32 tests en Jest que corren en CI junto a ESLint, Prettier y el build.