> ## Documentation Index
> Fetch the complete documentation index at: https://docs.conduktor.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Kafka Schema Registry management

> Manage Avro, Protobuf, and JSON schemas in your Kafka Schema Registry with Conduktor Console. Create subjects, browse versions.

Conduktor provides a visual interface for <Tooltip tip="A central repository for managing Kafka message schemas, ensuring compatibility.">schema registry</Tooltip>, allowing you to create and manage Subjects and schema with ease. Having schema registry ensures there is an automated way of ensuring data verification, schema evolution, and ability for new consumers to emerge without breaking downstream.

Conduktor supports **Confluent**, **Confluent like** (e.g. Karapace) and **AWS Glue** schema registry types.

<img src="https://mintcdn.com/conduktor/23R4f9CHmZAh-xV6/images/schema-registry-list.png?fit=max&auto=format&n=23R4f9CHmZAh-xV6&q=85&s=b54eff6a95a3e2c279d1c5e0bf8796e4" alt="Schema registry tab" width="2542" height="662" data-path="images/schema-registry-list.png" />

<Info>
  **From our blog:** [Kafka schema governance: from chaos to confidence](https://conduktor.io/blog/kafka-schema-governance-from-chaos-to-confidence) Move from reactive schema firefighting to proactive governance across your Kafka ecosystem.
</Info>

## Get started

Schema registry needs to be enabled on a per-cluster basis before any schemas can be added. Add your schema registry details on the tab available on an existing cluster configuration.

To see an example of setting up schema registry, head to [Part 3 of this blog post](https://www.conduktor.io/blog/what-is-the-schema-registry-and-why-do-you-need-to-use-it) <Icon icon="up-right-from-square" />. This example uses an Aiven cluster and Karaspace schema registry.

## Create subject

Once schema registry is setup, you can explore your subjects in the **Schema registry** tab from the left-hand menu. From there, click on the **New subject** button in the top right corner. This will open a side panel where you can configure your new subject.

<img src="https://mintcdn.com/conduktor/YlJn6qrEZm6kp3UE/images/create-subject.png?fit=max&auto=format&n=YlJn6qrEZm6kp3UE&q=85&s=d2a5f8b8aa8cb5a1eed0bee101145619" alt="Create subject" style={{width: "500px"}} width="1904" height="1444" data-path="images/create-subject.png" />

### Subject formats

Conduktor Console supports the [Avro](https://avro.apache.org/docs/current/spec.html) <Icon icon="up-right-from-square" />, [JSON](https://json-schema.org/) <Icon icon="up-right-from-square" /> and [Protobuf](https://developers.google.com/protocol-buffers/) <Icon icon="up-right-from-square" /> formats for schema registry.

### Strategy

Subjects can be applied in several ways: To topics, to records, to both topics and records, or through a custom method.

* **Topic Name**: This strategy associates your Subject with a specific topic of your choosing. Simply enter the topic name that you want the Subject to apply to. You will also need to specify if the Subject will apply to the key or value of a message. The topic name field will auto-complete for you, so no need to remember specific spellings!

* **Record Name**: This is set within a message. The Subject will only apply to messages with the record name that you define, but it will apply globally across all topics. Note that the field which this will apply to varies based on the format you choose. For Avro, this is set by `{name}`. For JSON, it is `{title}`. For Protobuf, it will be `{message}`.

* **Topic + Record Name**: Choose this option if you want your Subject to apply to both a specific topic, and messages with a specific name within that topic.

* **Custom**: For more advanced options, use the Custom strategy. You can define your strategy in the Custom name field.

### Subject content

Once you have decided on your format and strategy, you will need to enter your subject structure in the form provided.

Once it is ready, click **Create** and the Subject will be complete.

## Manage subject and schemas

You can manage your subjects and schemas from the **Schema Registry** tab. This includes:

**For subjects**:

* Change their compatibility
* Delete them

**For schemas**:

* Update a schema and create a new version
* Compare schemas from the same subject
* Delete them

### Change subject compatibility

Each subject has a compatibility type that determines how they should deal with evolution over time. As mentioned above, updating a Subject can cause issues upstream or downstream on applications, and choosing the right compatibility type can prevent this from occurring.

There are seven possible compatibility types:

1. Backward
2. Backward Transitive
3. Forward
4. Forward Transitive
5. Full
6. Full Transitive
7. None

[Find out what each type does from Confluent docs](https://docs.confluent.io//current/schema-registry/avro.html#summary) <Icon icon="up-right-from-square" />.

Compatibility can be changed **per subject** or **globally**.

<img src="https://mintcdn.com/conduktor/6deIvEKzfYjm4IId/images/change-compatibility.png?fit=max&auto=format&n=6deIvEKzfYjm4IId&q=85&s=3187d2758e0b5f9400e63eea5989049c" alt="Change subject compatibility" width="1269" height="602" data-path="images/change-compatibility.png" />

### Delete subject

From the dropdown shown above, you can also delete a subject with the bin icon at the bottom.

This will be a **soft-delete**, meaning that the schema versions under this subject will be removed, but their metadata such as their schema IDs will remain for lookup.

### Update schema

To update a schema, select the relevant subject and click **Update Schema**. This will open a side panel where you can add or remove fields from your schema.

<img src="https://mintcdn.com/conduktor/dxdoUwyrpvAc9X99/images/update-schema.png?fit=max&auto=format&n=dxdoUwyrpvAc9X99&q=85&s=1e091dee32aa50112560538b74652ab0" alt="Update schema" width="2094" height="2108" data-path="images/update-schema.png" />

Before updating, use the **Check compatibility** button to understand if this change will break anything upstream or downstream on our applications.

### Compare schemas

If you have more than two schemas associated to your subject, you will be able to compare them. For that, simply select the two versions you'd like to compare.

<img src="https://mintcdn.com/conduktor/dKeHsjTOLvuHVG-Z/images/compare-schemas.png?fit=max&auto=format&n=dKeHsjTOLvuHVG-Z&q=85&s=21e88ce006f486fe85767b9c6d936237" alt="Compare schemas" width="2464" height="1376" data-path="images/compare-schemas.png" />

### Delete schema

To delete a schema, select the right version in the dropdown and click on the `...`. From there, click on **Delete version**.

This will be a **soft-delete**, meaning that the schema version will be removed, but its metadata such as its schema ID will remain for lookup.

<img src="https://mintcdn.com/conduktor/YlJn6qrEZm6kp3UE/images/delete-schema.png?fit=max&auto=format&n=YlJn6qrEZm6kp3UE&q=85&s=4721176a7d8401e41e95136d6aa92ddd" alt="Delete schema" width="2456" height="1406" data-path="images/delete-schema.png" />

<Note> If you only have one schema for this subject, the subject will be soft-deleted too. </Note>

## Related resources

* [View schema adoption with governance Insights](/guide/insights/governance)
* [Enforce data quality with policies](/guide/use-cases/enforce-data-quality)
* [Give us feedback/request a feature](https://conduktor.io/roadmap) <Icon icon="up-right-from-square" />
