Kafka Events

9 Kafka event topics published by the RAG Service using CloudEvents 1.0 format on Amazon MSK Serverless.

MSK Serverless (Kafka)

All events use CloudEvents 1.0 envelope format, partitioned by tenant_id. Broker: boot-gpm4u49z.c2.kafka-serverless.us-east-1.amazonaws.com:9098

eventzr.rag.document.ingested.v1

Emitted when a document is successfully ingested and chunked

Partition key: tenant_id

Example payloadjson
{
  "specversion": "1.0",
  "type": "eventzr.rag.document.ingested.v1",
  "source": "rag-svc",
  "id": "evt-uuid",
  "time": "2026-02-28T12:00:00Z",
  "data": {
    "tenantId": "tenant-uuid",
    "documentId": "doc-uuid",
    "title": "Event Safety Guidelines",
    "sourceType": "manual",
    "chunkCount": 24,
    "embeddingModel": "amazon.titan-embed-text-v2:0"
  }
}

eventzr.rag.document.deleted.v1

Emitted when a document and its chunks are deleted

Partition key: tenant_id

Example payloadjson
{
  "specversion": "1.0",
  "type": "eventzr.rag.document.deleted.v1",
  "source": "rag-svc",
  "data": {
    "tenantId": "tenant-uuid",
    "documentId": "doc-uuid",
    "chunksRemoved": 24
  }
}

eventzr.rag.search.executed.v1

Emitted after each search query for analytics tracking

Partition key: tenant_id

Example payloadjson
{
  "specversion": "1.0",
  "type": "eventzr.rag.search.executed.v1",
  "source": "rag-svc",
  "data": {
    "tenantId": "tenant-uuid",
    "query": "venue safety regulations",
    "searchType": "hybrid",
    "resultCount": 5,
    "durationMs": 127,
    "namespace": "default"
  }
}

eventzr.rag.training.started.v1

Emitted when a training/evaluation job starts

Partition key: tenant_id

Example payloadjson
{
  "specversion": "1.0",
  "type": "eventzr.rag.training.started.v1",
  "source": "rag-svc",
  "data": {
    "tenantId": "tenant-uuid",
    "jobId": "job-uuid",
    "jobType": "golden-set-evaluation",
    "namespace": "default"
  }
}

eventzr.rag.training.completed.v1

Emitted when a training/evaluation job completes successfully

Partition key: tenant_id

Example payloadjson
{
  "specversion": "1.0",
  "type": "eventzr.rag.training.completed.v1",
  "source": "rag-svc",
  "data": {
    "tenantId": "tenant-uuid",
    "jobId": "job-uuid",
    "metrics": { "ndcg": 0.87, "mrr": 0.92, "map": 0.84 },
    "durationMs": 45000
  }
}

eventzr.rag.knowledge-gap.detected.v1

Emitted when the system detects unanswered queries (knowledge gaps)

Partition key: tenant_id

Example payloadjson
{
  "specversion": "1.0",
  "type": "eventzr.rag.knowledge-gap.detected.v1",
  "source": "rag-svc",
  "data": {
    "tenantId": "tenant-uuid",
    "query": "wheelchair accessibility at outdoor venues",
    "confidence": 0.12,
    "suggestedAction": "Add accessibility documentation"
  }
}

eventzr.rag.source.synced.v1

Emitted after a source connector sync completes (Confluence, Notion, etc.)

Partition key: tenant_id

Example payloadjson
{
  "specversion": "1.0",
  "type": "eventzr.rag.source.synced.v1",
  "source": "rag-svc",
  "data": {
    "tenantId": "tenant-uuid",
    "sourceId": "src-uuid",
    "sourceType": "confluence",
    "documentsAdded": 15,
    "documentsUpdated": 3,
    "documentsDeleted": 1
  }
}

eventzr.rag.namespace.created.v1

Emitted when a new namespace is created within a tenant

Partition key: tenant_id

Example payloadjson
{
  "specversion": "1.0",
  "type": "eventzr.rag.namespace.created.v1",
  "source": "rag-svc",
  "data": {
    "tenantId": "tenant-uuid",
    "namespaceId": "ns-uuid",
    "name": "customer-support-kb",
    "embeddingModel": "amazon.titan-embed-text-v2:0"
  }
}

eventzr.rag.customgpt.synced.v1

Emitted when tenant knowledge is synced to a Custom GPT

Partition key: tenant_id

Example payloadjson
{
  "specversion": "1.0",
  "type": "eventzr.rag.customgpt.synced.v1",
  "source": "rag-svc",
  "data": {
    "tenantId": "tenant-uuid",
    "gptId": "gpt-uuid",
    "documentCount": 142,
    "totalChunks": 3420
  }
}