RecordNameStrategy names a Schema Registry subject after an event’s fully qualified record name, such as com.example.ClientEvent, rather than after a Kafka topic. The schema lifecycle therefore remains independent of topic placement. section 6.4.3
This design supports polyglot topics containing multiple event types. ClientCreated, ClientUpdated, and ClientDeleted events can share a topic when their ordering matters, provided the client identifier is used as the partitioning key. section 6.4.3
Compared with topic-based subject naming, it provides:
- Independent schema evolution: changes to one record subject do not automatically affect subjects associated with other topics or event types. section 6.4.3
- Domain-oriented grouping: event types can be modeled independently of Kafka topic structure. section 6.4.3
- Direct registry lookup through a subject such as com.example.ClientEvent-value and a requested version. section 6.4.3
Listing 6.10 An example of the client event in Avro format
{
"type": "record",
"name": "ClientEvent",
"namespace": "com.example",
"fields": [
{
"name": "eventId",
"type": "string",
"doc": "Unique identifier for the event"
},
{
"name": "eventType",
"type": "string",
"doc": "Type of event (e.g., 'ClientCreated', 'ClientUpdated')"
},
{
"name": "timestamp",
"type": "long",
"logicalType": "timestamp-millis",
"doc": "Event timestamp in milliseconds"
},
{
"name": "clientId",
"type": "string",
"doc": "Unique identifier for the client"
},
{
"name": "clientName",
"type": "string",
"doc": "Name of the client"
}
]
}
The Avro record defines the fully qualified name and fields used to derive the subject. section 6.4.3

