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
| Environment | Broker |
|---|---|
| Staging | boot-gpm4u49z.c2.kafka-serverless.us-east-1.amazonaws.com:9098 |
| Production | b-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
| Topic | Description |
|---|---|
eventzr.cpaas.communication.requested.v1 | Message send requested (after validation, opt-out checks, rate limit verification) |
eventzr.cpaas.communication.sent.v1 | Message sent to provider successfully |
eventzr.cpaas.communication.delivered.v1 | Delivery confirmation received from provider |
eventzr.cpaas.communication.failed.v1 | Message delivery failed (all retries exhausted) |
Provider Operations (Published)1
| Topic | Description |
|---|---|
eventzr.cpaas.provider.failover.v1 | Provider failover triggered (primary provider unhealthy) |
Consumed Events2
| Topic | Description |
|---|---|
eventzr.cpaas.sms.inbound.v1 | Inbound SMS received via provider webhook (Twilio, AWS SNS) |
eventzr.notify.transactional.requested.v1 | Transactional 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 */ });