Skip to content

Azothedge Pulse

An open, observable customer data platform. Pulse is a multi-tenant CDP for collecting, validating, and landing customer event data — PDM schemas, streaming and batch ingestion, a governed data lake, and (across the roadmap) identity resolution, profiles, segments, and journeys — built on a Kafka- and Iceberg-based core you can run yourself.

  • Get Started


    Boot the full stack locally in about 90 seconds and send your first event end to end.

    5-minute Quickstart

  • Concepts


    Understand the data model: PDM schemas, the Iceberg data lake, and per-tenant isolation.

    PDM Schemas

  • API Reference


    The full REST API, OpenAPI 3.1, generated from the live FastAPI service.

    API Reference

Composable primitives, open foundation

Composable by design

Pulse's data model is composable: classes, field groups, datatypes, schemas, and descriptors assemble into validatable PDM schemas. Datasets back Apache Iceberg tables, and POST /v1/collect is the streaming entry point. See the Component Map for the full picture.

What ships today

Pulse is built in the open, week by week. As of v0.1 the ingestion plane is complete end to end:

  • A multi-tenant schema registry (classes, field groups, datatypes, schemas, descriptors) with a draft → published → archived lifecycle.
  • Streaming ingestion via POST /v1/collect — PDM-validated, published to per-tenant Kafka topics.
  • An exactly-once worker that lands events in per-tenant Apache Iceberg tables on object storage.
  • Dataset preview over the lake with DuckDB, and a Next.js admin portal.
  • Per-tenant isolation enforced by Postgres row-level security, plus Prometheus metrics and OpenTelemetry traces across both planes.

Identity, profiles, segments, and journeys are on the Roadmap.

License

Pulse is source-available under the Business Source License 1.1. It converts to Apache 2.0 on 21 May 2030. See the License page for the full text and what it means for commercial use.