Kafka Events

7 event topics across 3 categories: 5 published, 2 consumed via Amazon MSK Serverless.

Event Format: CloudEvents 1.0

All events follow the CloudEvents 1.0 specification. Events are partitioned by tenant_id and published to Amazon MSK Serverless. Topic pattern: eventzr.cpaas.<entity>.<action>.v1

Brokers

EnvironmentBroker
Stagingboot-gpm4u49z.c2.kafka-serverless.us-east-1.amazonaws.com:9098
Productionb-1.eventzr-msk-prod.ap-south-1.amazonaws.com:9098

Event Envelope

CloudEvents 1.0 envelopejson
{
  "specversion": "1.0",
  "type": "eventzr.cpaas.communication.sent.v1",
  "source": "cpaas-orchestrator-svc",
  "id": "evt-550e8400-e29b-41d4-a716-446655440000",
  "time": "2026-02-24T12:00:00.000Z",
  "datacontenttype": "application/json",
  "subject": "tenant-uuid",
  "data": {
    "tenantId": "tenant-uuid",
    "messageId": "msg_abc123",
    "channel": "WHATSAPP",
    "recipient": "+14155552671",
    "status": "SENT",
    "provider": "META_WHATSAPP",
    "cost_usd": 0.0055
  }
}

Event Topics (7)

Communication Lifecycle (Published)4

TopicDescription
eventzr.cpaas.communication.requested.v1Message send requested (after validation, opt-out checks, rate limit verification)
eventzr.cpaas.communication.sent.v1Message sent to provider successfully
eventzr.cpaas.communication.delivered.v1Delivery confirmation received from provider
eventzr.cpaas.communication.failed.v1Message delivery failed (all retries exhausted)

Provider Operations (Published)1

TopicDescription
eventzr.cpaas.provider.failover.v1Provider failover triggered (primary provider unhealthy)

Consumed Events2

TopicDescription
eventzr.cpaas.sms.inbound.v1Inbound SMS received via provider webhook (Twilio, AWS SNS)
eventzr.notify.transactional.requested.v1Transactional notification request from notify-svc

Client SDK: Kafka Publisher

Publish events via @eventzr/cpaas-orchestrator-clienttypescript
import { CpaasOrchestratorSvcClientPublisher } from '@eventzr/cpaas-orchestrator-client/kafka';

const publisher = new CpaasOrchestratorSvcClientPublisher(kafkaProducer);

// Publish lifecycle events
await publisher.publishRequested({ /* event data */ });
await publisher.publishSent({ /* event data */ });
await publisher.publishDelivered({ /* event data */ });
await publisher.publishFailed({ /* event data */ });
await publisher.publishFailover({ /* event data */ });