Pular para o conteúdo

Self-hosting do Kilden

O Kilden foi construído para ser self-hosted, e o self-hosting será documentado aqui quando o nosso lançamento open source sair. Sem promessas de data — preferimos publicá-lo funcionando a publicá-lo anunciado.

O preview honesto. O Kilden é uma pequena frota de serviços stateless em volta de quatro peças de infraestrutura — streaming compatível com Kafka, ClickHouse, Postgres, Redis, e object storage compatível com S3 para o replay:

SDKs / provider webhooks / external sources
capture ──► events_raw (keyed by distinct_id)
enricher ──► Postgres (persons, identities)
events_enriched (keyed by person_id)
│ │ │ │
▼ ▼ ▼ ▼
warehouse campaign CDP live tail
writer matcher sync │
│ │ │ ▼
▼ ▼ ▼ panel (websocket)
ClickHouse journeys destinations
(PG) → scheduler → dispatcher → email provider
provider webhooks ──────┘
(re-enter through capture)

O session replay segue um caminho paralelo: os chunks de gravação vão para o object storage, apenas ponteiros de ~200 bytes viajam pelo Kafka, e um indexador constrói o índice de sessões no ClickHouse.

As propriedades que o tornam operável:

  • Serviços são stateless — todo o estado vive nos bancos de dados e nos offsets dos consumidores, então tudo escala horizontalmente e restarts são entediantes.
  • Entrega at-least-once com bordas idempotentes — toda camada pode fazer retry com segurança; a deduplicação por UUIDs gerados no cliente a torna exactly-once onde importa.
  • Um único caminho de escrita — todo evento entra pelo capture, então há exatamente uma coisa a proteger, limitar e monitorar na ingestão.

O Kilden Cloud é a versão hospedada exatamente desta arquitetura — mesmo código, mesmas garantias. Todo o resto desta documentação se aplica aos dois.