Kafka Events
26 Kafka event topics published by the Residency Service using CloudEvents 1.0 format.
CloudEvents 1.0 envelope formatjson
{
"specversion": "1.0",
"id": "evt_550e8400-e29b-41d4-a716-446655440000",
"source": "residency-svc",
"type": "eventzr.residency.policy.created.v1",
"time": "2026-03-01T12:00:00.000Z",
"datacontenttype": "application/json",
"subject": "policy-uuid",
"tenantid": "tenant-uuid",
"data": {
"id": "policy-uuid",
"tenantId": "tenant-uuid",
"name": "EU Data Residency Policy",
"status": "active"
}
}Topic Naming Convention
All topics follow the pattern: eventzr.residency.<entity>.<action>.v1
Partition key: tenant_id — ensures all events for a tenant are processed in order.
Domain Summary
Policy (3)Classification (2)Consent (2)DSAR (2)Compliance (2)Data Flow (2)DPA (2)Framework (1)Location (1)PIA (2)Breach (3)Retention (1)Transfer (3)
| Topic | Domain | Action | Description |
|---|---|---|---|
eventzr.residency.policy.created.v1 | Policy | Created | Emitted when a new residency policy is created |
eventzr.residency.policy.updated.v1 | Policy | Updated | Emitted when a residency policy is updated |
eventzr.residency.policy.deleted.v1 | Policy | Deleted | Emitted when a residency policy is deleted |
eventzr.residency.classification.created.v1 | Classification | Created | Emitted when a data classification is created |
eventzr.residency.classification.updated.v1 | Classification | Updated | Emitted when a data classification is updated |
eventzr.residency.consent.created.v1 | Consent | Created | Emitted when a consent record is created |
eventzr.residency.consent.revoked.v1 | Consent | Revoked | Emitted when consent is revoked by a subject |
eventzr.residency.dsar.submitted.v1 | DSAR | Submitted | Emitted when a new DSAR is submitted |
eventzr.residency.dsar.completed.v1 | DSAR | Completed | Emitted when a DSAR is completed |
eventzr.residency.compliance.check-completed.v1 | Compliance | Completed | Emitted when a compliance check finishes |
eventzr.residency.compliance.violation-detected.v1 | Compliance | Detected | Emitted when a compliance violation is found |
eventzr.residency.data-flow.created.v1 | Data Flow | Created | Emitted when a data flow mapping is created |
eventzr.residency.data-flow.anomaly-detected.v1 | Data Flow | Detected | Emitted when an anomaly is detected in data flows |
eventzr.residency.dpa.created.v1 | DPA | Created | Emitted when a DPA is created |
eventzr.residency.dpa.expired.v1 | DPA | Expired | Emitted when a DPA expires |
eventzr.residency.framework.registered.v1 | Framework | Registered | Emitted when a regulatory framework is registered |
eventzr.residency.location.created.v1 | Location | Created | Emitted when a data storage location is created |
eventzr.residency.pia.submitted.v1 | PIA | Submitted | Emitted when a PIA is submitted for review |
eventzr.residency.pia.approved.v1 | PIA | Approved | Emitted when a PIA is approved |
eventzr.residency.breach.reported.v1 | Breach | Reported | Emitted when a data breach is reported |
eventzr.residency.breach.resolved.v1 | Breach | Resolved | Emitted when a breach is resolved |
eventzr.residency.breach.notification-sent.v1 | Breach | Sent | Emitted when a breach notification is sent to authorities |
eventzr.residency.retention.executed.v1 | Retention | Executed | Emitted when a retention policy execution completes |
eventzr.residency.transfer.requested.v1 | Transfer | Requested | Emitted when a cross-border transfer is requested |
eventzr.residency.transfer.approved.v1 | Transfer | Approved | Emitted when a cross-border transfer is approved |
eventzr.residency.transfer.blocked.v1 | Transfer | Blocked | Emitted when a cross-border transfer is blocked |
Consumer Configuration
Kafka consumer setuptypescript
import { KafkaBrokerModule } from '@eventzr/kafka';
// Subscribe to residency events
@Module({
imports: [
KafkaBrokerModule.forAws({
clientId: 'my-service',
groupId: 'my-service-residency-consumer',
topics: [
'eventzr.residency.breach.reported.v1',
'eventzr.residency.compliance.violation-detected.v1',
],
}),
],
})
export class ResidencyEventsModule {}