2021-08-26 13:33:44 +05:30
# Topic
This schema defines the Topic entity. A topic is a feed into which message are published to by publishers and read from by consumers in a messaging service.
2021-08-29 21:24:50 +00:00
**$id:** [**https://open-metadata.org/schema/entity/data/topic.json** ](https://open-metadata.org/schema/entity/data/topic.json )
2021-08-26 13:33:44 +05:30
Type: `object`
## Properties
2021-08-29 21:24:50 +00:00
* **id** `required`
* Unique identifier that identifies this topic instance.
* $ref: [../../type/basic.json\#/definitions/uuid ](../types/basic.md#uuid )
* **name** `required`
* Name that identifies the topic.
* $ref: [\#/definitions/topicName ](topic.md#topicname )
* **fullyQualifiedName**
* Name that uniquely identifies a topic in the format 'messagingServiceName.topicName'.
* Type: `string`
* **description**
* Description of the topic instance.
* Type: `string`
* **service** `required`
* Link to the messaging cluster/service where this topic is hosted in.
* $ref: [../../type/entityReference.json ](../types/entityreference.md )
* **partitions** `required`
* Number of partitions into which the topic is divided.
* Type: `integer`
* Range: ≥ 1
* **schemaText**
* Schema used for message serialization. Optional as some topics may not have associated schemas.
* Type: `string`
* **schemaType**
* Schema used for message serialization.
* $ref: [\#/definitions/schemaType ](topic.md#schematype )
* **cleanupPolicies**
* Topic clean up policies. For Kafka - `cleanup.policy` configuration.
* Type: `array`
* **Items**
* $ref: [\#/definitions/cleanupPolicy ](topic.md#cleanuppolicy )
* **retentionTime**
* Retention time in milliseconds. For Kafka - `retention.ms` configuration.
* Type: `number`
* **maximumMessageSize**
* Maximum message size in bytes. For Kafka - `max.message.bytes` configuration.
* Type: `integer`
* **minimumInSyncReplicas**
* Minimum number replicas in sync to control durability. For Kafka - `min.insync.replicas` configuration.
* Type: `integer`
* **retentionSize**
* Maximum size of a partition in bytes before old data is discarded. For Kafka - `retention.bytes` configuration.
* Type: `number`
* Default: _"-1"_
* **owner**
* Owner of this topic.
* $ref: [../../type/entityReference.json ](../types/entityreference.md )
* **followers**
* Followers of this table.
* $ref: [../../type/entityReference.json\#/definitions/entityReferenceList ](../types/entityreference.md#entityreferencelist )
* **tags**
* Tags for this table.
* Type: `array`
* **Items**
* $ref: [../../type/tagLabel.json ](../types/taglabel.md )
* **href**
* Link to the resource corresponding to this entity.
* $ref: [../../type/basic.json\#/definitions/href ](../types/basic.md#href )
2021-08-26 13:33:44 +05:30
## Type definitions in this schema
2021-08-29 21:24:50 +00:00
### topicName
2021-08-26 13:33:44 +05:30
2021-08-29 21:24:50 +00:00
* Name that identifies a topic.
* Type: `string`
* The value must match this pattern: `^[^.]*$`
* Length: between 1 and 64
2021-08-26 13:33:44 +05:30
### schemaType
2021-08-29 21:24:50 +00:00
* Schema type used for the message.
* The value is restricted to the following:
1. _"Avro"_
2. _"Protobuf"_
3. _"JSON"_
4. _"Other"_
2021-08-26 13:33:44 +05:30
### cleanupPolicy
2021-08-29 21:24:50 +00:00
* Topic clean up policy. For Kafka - `cleanup.policy` configuration.
* The value is restricted to the following:
1. _"delete"_
2. _"compact"_
2021-08-26 13:33:44 +05:30
2021-08-29 21:24:50 +00:00
_This document was updated on: Thursday, August 26, 2021_
2021-08-26 13:33:44 +05:30