Kafka Events
21 event topics (4 consumed, 17 produced) across 7 categories published to 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. All produced events use the transactional outbox pattern for reliable delivery. Consumers use Redis-based idempotency (24h TTL) keyed by CloudEvent ID.
Brokers
| Environment | Broker | Auth |
|---|---|---|
| Staging | boot-gpm4u49z.c2.kafka-serverless.us-east-1.amazonaws.com:9098 | SASL/OAUTHBEARER (IAM) |
| Production | b-1.eventzr-msk-prod.ap-south-1.amazonaws.com:9098 | SASL/OAUTHBEARER (IAM) |
Event Envelope
CloudEvents 1.0 envelopejson
{
"specversion": "1.0",
"type": "com.eventzr.cypher.conversation.created.v1",
"source": "/cypher-svc/conversations",
"id": "evt-550e8400-e29b-41d4-a716-446655440000",
"time": "2026-02-28T12:00:00.000Z",
"datacontenttype": "application/json",
"subject": "tenant-uuid",
"data": {
"conversationId": "conv-123",
"tenantId": "tenant-uuid",
"sessionId": "sess-456",
"channel": "WHATSAPP",
"userId": "user-uuid",
"initialIntent": "CREATE_EVENT",
"locale": "en-US",
"startedAt": "2026-02-28T12:00:00.000Z"
}
}Consumed Topics (4)
cypher-svc consumes events from these services
Each consumer has its own dedicated consumer group for independent offset tracking. All consumers use Redis-based idempotency with 24h TTL.
| Topic | Consumer Group | Description |
|---|---|---|
eventzr.chat.message.created.v1 | cypher-svc-chat-consumer | Syncs chat messages from chat-svc to conversation history |
eventzr.mcp.tool.executed.v1 | cypher-svc-mcp-consumer | Handles tool execution results from MCP service, updates task status |
eventzr.notify.delivered.v1 | cypher-svc-notify-consumer | Handles notification delivery status updates, updates nudge delivery status |
eventzr.wallet.balance.updated.v1 | cypher-svc-wallet-consumer | Updates local Redis credit cache when tenant wallet balance changes |
Produced Topics (17)
Conversation Lifecycle3
| Topic | Description |
|---|---|
eventzr.cypher.conversation.created.v1 | New conversation initiated |
eventzr.cypher.conversation.updated.v1 | Conversation state or metrics changed |
eventzr.cypher.conversation.completed.v1 | Conversation reached terminal state |
Task Lifecycle3
| Topic | Description |
|---|---|
eventzr.cypher.task.started.v1 | Task execution began |
eventzr.cypher.task.completed.v1 | Task completed successfully |
eventzr.cypher.task.failed.v1 | Task execution failed |
Voice Call Lifecycle4
| Topic | Description |
|---|---|
eventzr.cypher.voice-call.started.v1 | WhatsApp voice call AI session began |
eventzr.cypher.voice-call.utterance.v1 | Voice utterance processed (STT + LLM + TTS) |
eventzr.cypher.voice-call.ended.v1 | Voice call ended (completed/failed/abandoned) |
eventzr.cypher.voice-call.analytics.v1 | Aggregated voice call analytics for dashboards |
Session & Credits3
| Topic | Description |
|---|---|
eventzr.cypher.session.created.v1 | New user session created |
eventzr.cypher.session.expired.v1 | Session expired or explicitly ended |
eventzr.cypher.credits.consumed.v1 | AI credits consumed for an operation |
Nudge & Escalation4
| Topic | Description |
|---|---|
eventzr.cypher.nudge.sent.v1 | Proactive nudge sent to user |
eventzr.cypher.escalation.created.v1 | Conversation escalated to human support |
eventzr.cypher.escalation.assigned.v1 | Escalation assigned to a support agent |
eventzr.cypher.escalation.resolved.v1 | Escalation resolved by agent |