Español
Arquitectura
Stack Tecnológico

Stack Tecnológico

Una visión completa de las tecnologías utilizadas en ReliaPulse.

Frontend

Next.js 16

La aplicación usa Next.js 16 con App Router:

  • Server Components - Modo de renderizado por defecto para mejor rendimiento
  • Client Components - Usados donde se requiere interactividad (marcados con "use client")
  • Route Handlers - Endpoints API en /api/v1/*
  • Middleware - Rate limiting, tracking de request ID
  • Streaming - Renderizado progresivo con Suspense boundaries

React 19

  • Server Components para obtención de datos
  • Client Components para interactividad
  • Hooks para gestión de estado (useState, useEffect, useCallback, useMemo)
  • Context para estado global (Auth, Theme, Socket)

TypeScript

Configuración estricta de TypeScript con:

  • Seguridad de tipos completa en todo el código
  • Zod para validación en runtime
  • Prisma para consultas tipadas a la base de datos

TailwindCSS 4

  • Framework CSS utility-first
  • Variables de color personalizadas para temas
  • Soporte dark mode via estrategia class
  • Patrones de diseño responsive

Radix UI

Primitivas de componentes accesibles y sin estilos:

  • Dialog, Dropdown, Tabs, Select
  • Accordion, Collapsible, Tooltip
  • Command palette (cmdk)

Librerías Frontend Adicionales

LibreríaPropósito
@dnd-kitDrag-and-drop para el constructor de páginas
rechartsVisualización de gráficos
date-fnsFormateo y manipulación de fechas
lucide-reactLibrería de iconos
next-themesGestión de dark mode
sonnerNotificaciones toast

Backend

Prisma 7

ORM para PostgreSQL con:

  • Cliente de base de datos tipado
  • Migraciones para cambios de esquema
  • Connection pooling
  • Soporte para campos JSON
// Ejemplo de consulta
const components = await prisma.component.findMany({
  where: { organizationId },
  include: { subComponents: true }
});

PostgreSQL

Base de datos principal almacenando:

  • Todos los datos de la aplicación
  • Sesiones de usuario (opcional)
  • Logs de auditoría

Características usadas:

  • Columnas JSONB para config flexible
  • Búsqueda full-text (planificado)
  • Triggers para eliminaciones en cascada

Redis

Almacén de datos en memoria para:

  • Colas de trabajos BullMQ
  • Contadores de rate limiting
  • Caché de sesiones (opcional)

BullMQ

Librería de colas de trabajos para procesamiento en segundo plano:

  • Lógica de reintentos con backoff exponencial
  • Priorización de trabajos
  • Trabajos diferidos (tareas programadas)
  • Eventos y tracking de progreso

Autenticación

NextAuth.js v5

Framework de autenticación soportando:

  • Credenciales - Email/contraseña con bcrypt
  • OAuth - Google, GitHub (opcional)
  • SSO/SAML - SSO empresarial via SAML Jackson
  • 2FA - TOTP con códigos de respaldo

Librerías de Seguridad

LibreríaPropósito
bcryptjsHash de contraseñas
otplibGeneración TOTP 2FA
@boxyhq/saml-jacksonSAML SSO
cryptoHash de API keys, encriptación

Monitoreo e Integraciones

Adaptadores de Integración

Sistema de adaptadores basado en patrones para servicios externos:

// Interfaz base del adaptador
interface BaseIntegrationAdapter {
  validateConfig(config: unknown): Promise<boolean>;
  testConnection(): Promise<boolean>;
  fetchMetrics(query: string): Promise<MetricResult>;
}

Integraciones soportadas:

  • Prometheus (PromQL)
  • Datadog (DQL)
  • New Relic (NRQL)
  • Grafana (varios datasources)
  • Pingdom (estado de checks)

Sistema de Health Checks

Verificador HTTP personalizado con:

  • Múltiples tipos de condiciones
  • Evaluación JSON path (jsonpath-plus)
  • Validación de headers y body
  • Umbrales de tiempo de respuesta

Logging y Observabilidad

Pino

Logging JSON estructurado:

{
  "level": "info",
  "time": "2026-01-24T12:00:00.000Z",
  "service": "status-page",
  "msg": "Health check completed"
}

Características:

  • Contexto de request (IP, user agent, request ID)
  • Loggers específicos para workers
  • Niveles de log configurables

Notificaciones

Canales de Entrega

CanalLibrería/Método
EmailResend API
SMSTwilio API
SlackWebhook API
DiscordWebhook API
TeamsAdaptive Cards
WebhookHTTP personalizado
PushWeb Push API

Herramientas de Desarrollo

Build y Desarrollo

  • Turbopack - Servidor de desarrollo rápido
  • Docker Compose - Entorno de desarrollo local
  • Prisma Studio - GUI de base de datos

Testing

HerramientaPropósito
JestTests unitarios y de API
PlaywrightTests E2E
Librerías mockMocking de Prisma, Auth

Calidad de Código

  • ESLint para linting
  • Prettier para formateo (opcional)
  • TypeScript para verificación de tipos

Despliegue

Containerización

  • Docker - Builds multi-stage
  • Docker Compose - Desarrollo y producción a pequeña escala

Orquestación

  • Kubernetes - Escalado en producción
  • Helm - Gestión de paquetes (opcional)

Plataformas

Targets de despliegue verificados:

  • Vercel (app Next.js)
  • Railway/Render
  • AWS ECS/EKS
  • Google Cloud Run/GKE
  • Docker auto-hospedado

Requisitos de Versión

TecnologíaVersión Mínima
Node.js20.x
PostgreSQL14.x
Redis6.x
npm/pnpm8.x