Kafka Events
12 Kafka event topics produced by the Ticketing Service.
CloudEvents 1.0 Format
All events follow the CloudEvents 1.0 specification with tenant_id as the partition key for multi-tenant isolation.
Event Envelope
CloudEvents 1.0 envelopejson
{
"specversion": "1.0",
"id": "550e8400-e29b-41d4-a716-446655440000",
"type": "eventzr.ticketing.purchase.created.v1",
"source": "ticketing-svc",
"time": "2026-03-03T12:00:00.000Z",
"datacontenttype": "application/json",
"subject": "purchase-uuid",
"tenantid": "tenant-uuid",
"data": {
"id": "purchase-uuid",
"tierId": "tier-uuid",
"userId": "user-uuid",
"quantity": 2,
"totalAmountCents": 5000,
"status": "confirmed"
}
}Pass Events (2)
| Topic | Description |
|---|---|
eventzr.ticketing.pass.issued.v1 | A new pass has been issued after a successful purchase |
eventzr.ticketing.pass.updated.v1 | A pass has been updated (status change, transfer, etc.) |
Purchase Events (2)
| Topic | Description |
|---|---|
eventzr.ticketing.purchase.created.v1 | A new purchase has been created |
eventzr.ticketing.purchase.cancelled.v1 | A purchase has been cancelled |
Transfer Events (4)
| Topic | Description |
|---|---|
eventzr.ticketing.transfer.initiated.v1 | A pass transfer has been initiated |
eventzr.ticketing.transfer.completed.v1 | A pass transfer has been completed (accepted) |
eventzr.ticketing.transfer.rejected.v1 | A pass transfer has been rejected by the recipient |
eventzr.ticketing.transfer.cancelled.v1 | A pass transfer has been cancelled by the sender |
Refund Events (3)
| Topic | Description |
|---|---|
eventzr.ticketing.refund.requested.v1 | A refund has been requested |
eventzr.ticketing.refund.approved.v1 | A refund has been approved by the organizer |
eventzr.ticketing.refund.rejected.v1 | A refund has been rejected by the organizer |
Check-in Events (1)
| Topic | Description |
|---|---|
eventzr.ticketing.checkin.completed.v1 | A pass has been successfully checked in at the event |
Consuming Events
Example: Listen for purchase eventstypescript
import { KafkaBrokerModule } from '@eventzr/kafka';
// In your consumer service:
@KafkaListener({ topic: 'eventzr.ticketing.purchase.created.v1' })
async handlePurchaseCreated(event: CloudEvent<PurchaseCreatedPayload>) {
const { tenantid, data } = event;
console.log(`New purchase ${data.id} for tenant ${tenantid}`);
// Process the purchase event...
}