John Frederick Knight Berra
Volver a proyectos
Desarrollador Backend2026

Plataforma de Feature Flags

Diseñé y desarrollé el backend de una plataforma de feature flags orientada a aplicaciones web y servicios. El sistema permite registrar clientes, crear proyectos, administrar flags, configurar porcentajes de rollout y generar API keys seguras. También desarrollé un SDK en TypeScript que simplifica la integración con aplicaciones cliente y abstrae la comunicación con la API.

En DesarrolloProyecto Personal

API modular desarrollada con NestJS y PostgreSQL usando Prisma.

SDK propio en TypeScript preparado para distribuirse mediante npm.

Autenticación separada para usuarios administrativos y aplicaciones cliente.

Características

  • Registro e inicio de sesión de clientes
  • Gestión de proyectos
  • Creación y modificación de feature flags
  • Activación y desactivación remota de funcionalidades
  • Configuración de rollout porcentual
  • Generación y revocación de API keys
  • Evaluación de flags desde aplicaciones cliente
  • Integración mediante SDK para TypeScript

Arquitectura

  • API REST (NestJS)
  • SDK para TypeScript
  • PostgreSQL
  • Prisma ORM
  • Autenticación JWT
  • Autenticación mediante API Keys
  • Docker y Docker Compose

Decisiones de diseño

Separación entre administración y consumo de flags

Diseñé dos mecanismos de autenticación independientes: JWT para que los propietarios administren sus proyectos y API keys para que las aplicaciones cliente consulten las flags. Esto evita exponer credenciales administrativas y mantiene responsabilidades claramente separadas.

API keys almacenadas de forma segura

Las API keys se generan utilizando un prefijo identificable y un secreto aleatorio. El secreto completo solo se entrega al momento de crear la clave, mientras que en la base de datos se almacena únicamente su hash para reducir el impacto de una posible filtración.

SDK para simplificar la integración

En lugar de obligar a cada aplicación cliente a implementar manualmente peticiones HTTP, autenticación y manejo de respuestas, desarrollé un SDK que encapsula la comunicación con la API y ofrece una interfaz sencilla para evaluar feature flags.

Rollout porcentual determinista

Las flags pueden configurarse con un porcentaje de disponibilidad para habilitar funcionalidades de forma gradual. La evaluación puede utilizar un identificador estable del usuario para mantener resultados consistentes entre distintas solicitudes.

Tecnologías

NestJSTypeScriptPostgreSQLPrismaDockerNodeJS