Ir al contenido

Self-hosting de Kilden

Kilden está construido para poder auto-hospedarse, y el self-hosting se documentará aquí cuando salga nuestro release open source. Sin promesas de fechas — preferimos publicarlo funcionando antes que anunciado.

La preview honesta. Kilden es una flota pequeña de servicios sin estado alrededor de cuatro piezas de infraestructura — streaming compatible con Kafka, ClickHouse, Postgres, Redis, y object storage compatible con S3 para replay:

SDKs / webhooks de proveedores / fuentes externas
capture ──► events_raw (key: distinct_id)
enricher ──► Postgres (personas, identidades)
events_enriched (key: person_id)
│ │ │ │
▼ ▼ ▼ ▼
warehouse campaign CDP live tail
writer matcher sync │
│ │ │ ▼
▼ ▼ ▼ panel (websocket)
ClickHouse journeys destinos
(PG) → scheduler → dispatcher → proveedor de email
webhooks del proveedor ─┘
(reingresan por capture)

Session replay toma un camino paralelo: los chunks de grabación van al object storage, por Kafka solo viajan punteros de ~200 bytes, y un indexador construye el índice de sesiones en ClickHouse.

Las propiedades que lo hacen operable:

  • Los servicios no tienen estado — todo el estado vive en las bases de datos y los offsets de los consumers, así que todo escala horizontalmente y los reinicios son aburridos.
  • Entrega at-least-once con bordes idempotentes — cada capa puede reintentar con seguridad; la deduplicación por UUIDs generados en el cliente lo vuelve exactly-once donde importa.
  • Un solo camino de escritura — cada evento entra por capture, así que hay exactamente una cosa que asegurar, limitar y monitorear para la ingesta.

Kilden Cloud es la versión hosteada de exactamente esta arquitectura — mismo código, mismas garantías. Todo lo demás en esta documentación aplica a ambas.