Arquitectura y transparencia

Cómo está construido LogPulse

La confianza empieza por saber qué hay bajo el capó. Aquí está el stack que ejecuta tus logs, las decisiones que tomamos y hacia dónde vamos. Preferimos compartir de más antes que prometer de más.

El stack de un vistazo

Componentes aburridos y bien conocidos. Sin magia.

Ingesta

Fastify sobre Node 22

GCP · Ámsterdam (NL)

OTLP HTTP más un endpoint JSON genérico. Autenticación Bearer con claves de API hasheadas con bcrypt. Con limitación de tasa por clave.

Cola

BullMQ sobre Redis

GCP · Ámsterdam (NL)

Agrupa 100-1000 registros antes de cada inserción. Reintenta ante fallos transitorios de ClickHouse.

Almacenamiento de logs

ClickHouse Cloud

GCP · Ámsterdam (NL)

Columnar, particionado por tenant_id y fecha. La clave de orden (tenant_id, namespace, timestamp, log_id) hace que las consultas por tenant impacten primero en las particiones correctas. Compresión típica de 8-12× en logs de texto.

Metadatos

PostgreSQL vía Drizzle ORM

GCP · Ámsterdam (NL)

Usuarios, organizaciones, claves de API, dashboards, alertas, pipelines. Aquí no se almacena contenido de logs.

Frontend

React 19 + Vite

Cloudflare Pages

TanStack Query para el estado del servidor, Zustand para el estado de la UI, Tailwind + shadcn/ui. TypeScript estricto en todas partes.

IA

Anthropic Claude

Subencargado con sede en EE. UU.

Impulsa la traducción de lenguaje natural → LPQL y el AI Investigator. Listado en nuestros subencargados. Los logs solo fluyen al LLM cuando activas una consulta de IA.

Cómo se mueven los datos

De tus aplicaciones a ClickHouse y de vuelta a ti.

  Your apps  ──OTLP HTTP──▶  Fastify ingest  ──▶  BullMQ (Redis)
                                  │                       │
                              auth + quota              batch
                                  │                       ▼
                                  │             ClickHouse (GCP · Amsterdam)
                                  │                       │
                                  ▼                       │
                              PostgreSQL                  │
                              (metadata)                  │
                                                          ▼
  Web UI  ◀── LPQL / AI ──  Fastify query  ──▶  ClickHouse (tenant-scoped)

Ingesta basada en push: los agentes y los SDK envían logs a través de OTLP HTTP. La API autentica y encola; un worker agrupa y escribe en ClickHouse. Las consultas fluyen en la otra dirección: la UI llama a la API, la API ejecuta LPQL en ClickHouse con el alcance por tenant aplicado en la frontera.

Multitenencia y aislamiento

Separación aplicada en la base de datos, no solo en la aplicación.

  • Los tenants Free, Pro y Business comparten una tabla de ClickHouse particionada por tenant_id + fecha. Los clientes Enterprise obtienen un stack totalmente dedicado: ingesta, cómputo y almacenamiento aislados.
  • Cada consulta lleva WHERE tenant_id = '…', aplicado en la frontera de la API, parametrizado, nunca concatenado como cadena. La poda de particiones significa que los datos de otros tenants no se escanean.
  • Las claves de API se hashean con bcrypt en PostgreSQL; las claves en bruto se muestran una vez al crearlas y nunca se registran.
  • El RBAC de namespace acota el acceso a los logs por equipo, de modo que los equipos de Platform Engineering pueden dar autoservicio a los desarrolladores sin exponer otros namespaces.

Retención y coste

El precio fijo significa que no pagas de más cuando registras más de lo que previste.

  • Retención según el plan: Free 7d, Starter 14d, Pro 30d. Los planes Team y Platform tienen retención configurable con gestión automatizada del ciclo de vida.
  • Precio de tarifa plana: la ingesta diaria está incluida hasta tu cuota. Sin cargos por GB, sin facturas sorpresa por exceso.
  • La compresión columnar de ClickHouse suele alcanzar 8-12× en logs de texto, por lo que podemos ofrecer precios fijos sin sacrificar el margen.
  • Cuando alcanzas tu cuota recibes un 429 y un correo al 80%. Preferimos que mejores tu plan de forma deliberada antes que cobrarte por el exceso de forma silenciosa.

IA: un atajo, no una caja negra

Se muestra cada consulta que ejecuta la IA. Puedes verificarla, editarla y guardarla.

  • Las preguntas en lenguaje natural son traducidas a LPQL por un LLM (Anthropic Claude). El LLM está listado en nuestros subencargados y solo ve datos cuando activas una consulta de IA.
  • El AI Investigator encadena consultas: busca, correlaciona con despliegues, compara con la línea base. Cada paso se muestra en el chat con el LPQL que ejecutó y las líneas de log que devolvió.
  • Las hipótesis se plantean como 'causa raíz probable' con evidencias, no como afirmaciones. Verificas antes de actuar.
  • Las opciones de LLM alojados en la UE están en la hoja de ruta para clientes con requisitos estrictos de residencia. Hasta entonces, las funciones de IA son opcionales por consulta.
Honestos, no exagerados

Dónde estamos frente a hacia dónde vamos

Preferimos ser honestos sobre lo que está construido y lo que aún está en curso.

RGPD

Conforme de forma predeterminada

DPA + SCC disponibles en los planes de pago. Ruta de datos exclusivamente en la UE. Cifrado en reposo y en tránsito.

SOC 2 Type II

En curso · T3 2026

Controles de los Trust Services Criteria implementados. Auditoría en marcha.

ISO 27001

En seguimiento

Controles alineados; aún no certificado.

Página pública de disponibilidad

Planificado

Página de estado con disponibilidad histórica por servicio.

Benchmarks públicos

Planificado

Publicaciones reproducibles de rendimiento de ingesta y latencia de consulta.

¿Detectaste una laguna o quieres profundizar más?

Preferimos compartir de más antes que prometer de más. Escribe a security@logpulse.io con preguntas sobre el stack, el aislamiento o cualquier cosa que no hayamos cubierto aquí.

Utilizamos cookies para analizar el tráfico del sitio y mejorar tu experiencia. No se instala ninguna cookie sin tu consentimiento. Política de privacidad