Skip to content

Commit 62f5f5d

Browse files
committed
two-schema-registry-articles
1 parent 9a72f50 commit 62f5f5d

File tree

2 files changed

+40
-40
lines changed

2 files changed

+40
-40
lines changed

articles/event-hubs/schema-registry-client-side-enforcement.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,23 +16,23 @@ This flow is illustrated as shown:
1616
:::image type="content" source="./media/schema-registry-overview/information-flow.svg" alt-text="Image showing the Schema Registry information flow." border="false":::
1717

1818
> [!NOTE]
19-
> While the diagram showcases the information flow when event producers and consumers use Schema Registry with the **Kafka** protocol and **Avro** schema, it doesn't really change for other protocols and schema formats.
19+
> While the diagram showcases the information flow when event producers and consumers use Schema Registry with the Kafka protocol and Avro schema, it doesn't really change for other protocols and schema formats.
2020
>
2121
2222
### Producer
2323

2424
1. Kafka producer application uses `KafkaAvroSerializer` to serialize event data using the specified schema. Producer application provides details of the schema registry endpoint and other optional parameters that are required for schema validation.
2525

26-
2. The serializer looks for the schema in the schema registry to serialize event data. If it finds the schema, then the corresponding schema ID is returned. You can configure the producer application to auto register the schema with the schema registry if it doesn't exist.
26+
1. The serializer looks for the schema in the schema registry to serialize event data. If it finds the schema, then the corresponding schema ID is returned. You can configure the producer application to auto register the schema with the schema registry if it doesn't exist.
2727

28-
3. Then the serializer prepends the schema ID to the serialized data that is published to the Event Hubs.
28+
1. Then the serializer prepends the schema ID to the serialized data that is published to the Event Hubs.
2929

3030
### Consumer
3131

3232
1. Kafka consumer application uses `KafkaAvroDeserializer` to deserialize data that it receives from the event hub.
3333

34-
2. The deserializer uses the schema ID (prepended by the producer) to retrieve schema from the schema registry.
34+
1. The deserializer uses the schema ID (prepended by the producer) to retrieve schema from the schema registry.
3535

36-
3. The deserializer uses the schema to deserialize event data that it receives from the event hub.
36+
1. The deserializer uses the schema to deserialize event data that it receives from the event hub.
3737

38-
4. The schema registry client uses caching to prevent redundant schema registry lookups in the future.
38+
1. The schema registry client uses caching to prevent redundant schema registry lookups in the future.

articles/event-hubs/schema-registry-concepts.md

Lines changed: 34 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -9,49 +9,49 @@ ms.author: spelluru
99

1010
# Schema Registry in Azure Event Hubs
1111

12-
Schema Registry is crucial in loosely coupled and event streaming workflows for maintaining data consistency, simplifying schema evolution, enhancing interoperability, and reducing development effort. It ensures highly reliable data processing and governance with little operational overhead in large distributed organizations with a centralized repository for schemas.
12+
To maintain data consistency, simplify schema evolution, enhance interoperability, and reduce development effort, using schema registries is crucial in loosely coupled and event streaming workflows. It ensures highly reliable data processing and governance with little operational overhead in large distributed organizations with a centralized repository for schemas.
1313

1414
Schema Registry in Azure Event Hubs fulfills multiple roles in schema-driven event streaming scenarios:
15-
* Provides a repository where multiple schemas can be registered, managed, and evolved.
16-
* Managed schema evolution with multiple compatibility rules.
17-
* Performs data validation for all schematized data.
18-
* Provides client-side libraries (serializers and deserializers) for producers and consumers.
19-
* Improves network throughput efficiency by passing schema ID instead of the schema definition for every payload.
15+
* Provides a repository where multiple schemas can be registered, managed, and evolved
16+
* Manages schema evolution with multiple compatibility rules
17+
* Performs data validation for all schematized data
18+
* Provides client-side libraries (serializers and deserializers) for producers and consumers
19+
* Improves network throughput efficiency by passing schema ID instead of the schema definition for every payload
2020

2121
Schema Registry is supported on Standard, Premium, and Dedicated tiers.
2222

2323
## Schema Registry components
2424

25-
The Schema Registry lives in the context of the Event Hubs namespace, but it can be used with all Azure messaging service or other message or events broker. It comprises multiple schema groups which act as a logical grouping of schemas and can be managed independent of other schema groups.
25+
The Schema Registry lives in the context of the Event Hubs namespace, but it can be used with all Azure messaging service or other message or events broker. It comprises multiple schema groups which act as a logical grouping of schemas and can be managed independent of other schema groups.
2626

2727
:::image type="content" source="./media/schema-registry-overview/elements.png" alt-text="Diagram that shows the components of Schema Registry in Azure Event Hubs." border="false":::
2828

2929
### Schemas
3030

31-
In any loosely coupled system, there are multiple applications communicating with each other, primarily through data. Schemas act as a declarative way to define the structure of the data so that the contract between these producer and consumer applications is well defined, ensuring reliable processing at scale.
31+
In any loosely coupled system, there are multiple applications communicating with each other, primarily through data. Schemas act as a declarative way to define the structure of the data so that the contract between producer and consumer applications is well-defined, ensuring reliable processing at scale.
3232

33-
A schema definition includes -
34-
* Fields - name of the individual data elements (that is, first/last name, book title, address).
35-
* Data types - the kind of data that can be stored in each field (for example, string, date-time, array).
36-
* Structure - the organization of the different fields (that is, nested structures or arrays).
33+
A schema definition includes:
34+
* Fields: name of the individual data elements (that is, first/last name, book title, address)
35+
* Data types: the kind of data that can be stored in each field (for example, string, date-time, array)
36+
* Structure: the organization of the different fields (that is, nested structures or arrays)
3737

3838
Schemas define the contract between producers and consumers. A schema defined in an Event Hubs schema registry helps manage the contract outside of event data, thus removing the payload overhead.
3939

4040
#### Schema formats
4141
Schema formats are used to determine the manner in which a schema is structured and defined, with each format outlining specific guidelines and syntax for defining the structure of the events that will be used for event streaming.
4242

4343
##### Avro schema
44-
[Avro](https://avro.apache.org/) is a popular data serialization system that uses a compact binary format and provides schema evolution capabilities.
44+
[Avro](https://avro.apache.org/) is a popular data serialization system that uses a compact binary format and provides schema evolution capabilities.
4545

4646
To learn more about using Avro schema format with Event Hubs Schema Registry, see:
47-
- [How to use schema registry with Kafka and Avro](schema-registry-kafka-java-send-receive-quickstart.md)
48-
- [How to use Schema registry with Event Hubs .NET SDK (AMQP) and Avro.](schema-registry-dotnet-send-receive-quickstart.md)
47+
* [How to use schema registry with Kafka and Avro](schema-registry-kafka-java-send-receive-quickstart.md)
48+
* [How to use Schema registry with Event Hubs, .NET, SDK (AMQP), and Avro.](schema-registry-dotnet-send-receive-quickstart.md)
4949

5050
##### JSON Schema
51-
[JSON Schema](https://json-schema.org/) is a standardized way of defining the structure and data types of the events. JSON Schema enables the confident and reliable use of the JSON data format in event streaming.
51+
[JSON (JavaScript Object Notation) Schema](https://json-schema.org/) is a standardized way of defining the structure and data types of the events. JSON Schema enables the confident and reliable use of the JSON data format in event streaming.
5252

5353
To learn more about using JSON schema format with Event Hubs Schema Registry, see:
54-
- [How to use schema registry with Kafka and JSON Schema](schema-registry-json-schema-kafka.md)
54+
* [How to use schema registry with Kafka and JSON Schema](schema-registry-json-schema-kafka.md)
5555

5656
##### Protobuf
5757

@@ -60,9 +60,9 @@ To learn more about using JSON schema format with Event Hubs Schema Registry, se
6060
### Schema groups
6161

6262
Schema groups are logical groups of similar schemas based on your business criteria. A schema group holds:
63-
* multiple schema definition,
64-
* multiple versions of a specific schema, and
65-
* metadata regarding the schema type and compatibility for all schemas in the group.
63+
* Multiple schema definitions
64+
* Multiple versions of a specific schema
65+
* Metadata regarding the schema type and compatibility for all schemas in the group
6666

6767
A schema groups can be thought of as a subset of the schema registry, aligned with a particular application or organizational unit, with a separate authorization model. This extra security boundary ensures that in the shared services model, metadata, and trade secrets aren't leaked. It also allows for application owners to manage schemas independent of other applications that share the same namespace.
6868

@@ -75,30 +75,30 @@ Schemas need to evolve with the business requirement of producers and consumers.
7575
Azure Schema Registry for Event Hubs support following compatibility modes.
7676

7777
### Backward compatibility
78-
Backward compatibility mode allows the consumer code to use a new version of schema but it can process messages with old version of the schema. When you use backward compatibility mode in a schema group, it allows following changes to be made on a schema.
78+
Backward compatibility mode allows the consumer code to use a new version of a schema but it can process messages with old version of the schema. When you use backward compatibility mode in a schema group, it allows following changes to be made on a schema.
7979

80-
* Delete fields.
81-
* Add optional fields.
80+
* Delete fields
81+
* Add optional fields
8282

8383
### Forward compatibility
8484
Forward compatibility allows the consumer code to use an old version of the schema but it can read messages with the new schema. Forward compatibility mode allows following changes to be made on a schema.
85-
* Add fields
85+
* Add fields
8686
* Delete optional fields
8787

8888
### No compatibility
89-
When the ``None`` compatibility mode is used, the schema registry doesn't do any compatibility checks when you update schemas.
89+
When the ``None`` compatibility mode is used, the schema registry doesn't do any compatibility checks when you update schemas.
9090

9191
## Client SDKs
9292

9393
You can use one of the following libraries to include an Avro serializer, which you can use to serialize and deserialize payloads containing Schema Registry schema identifiers and Avro-encoded data.
9494

95-
* [.NET - Microsoft.Azure.Data.SchemaRegistry.ApacheAvro](https://github.com/Azure/azure-sdk-for-net/tree/master/sdk/schemaregistry/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro)
96-
* [Java - azure-data-schemaregistry-avro](https://github.com/Azure/azure-sdk-for-java/tree/main/sdk/schemaregistry/azure-data-schemaregistry-apacheavro)
97-
* [Python - azure-schemaregistry-avroserializer](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/schemaregistry/azure-schemaregistry-avroencoder/)
98-
* [JavaScript - @azure/schema-registry-avro](https://github.com/Azure/azure-sdk-for-js/tree/master/sdk/schemaregistry/schema-registry-avro)
99-
* [Apache Kafka](https://github.com/Azure/azure-schema-registry-for-kafka/) - Run Kafka-integrated Apache Avro serializers and deserializers backed by Azure Schema Registry. The Java client's Apache Kafka client serializer for the Azure Schema Registry can be used in any Apache Kafka scenario and with any Apache Kafka® based deployment or cloud service.
100-
* **Azure CLI** - For an example of adding a schema to a schema group using CLI, see [Adding a schema to a schema group using CLI](https://github.com/Azure/azure-event-hubs/tree/master/samples/Management/CLI/AddschematoSchemaGroups).
101-
* **PowerShell** - For an example of adding a schema to a schema group using PowerShell, see [Adding a schema to a schema group using PowerShell](https://github.com/Azure/azure-event-hubs/tree/master/samples/Management/PowerShell/AddingSchematoSchemagroups).
95+
* **.NET**: [Microsoft.Azure.Data.SchemaRegistry.ApacheAvro](https://github.com/Azure/azure-sdk-for-net/tree/master/sdk/schemaregistry/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro)
96+
* **Java**: [azure-data-schemaregistry-avro](https://github.com/Azure/azure-sdk-for-java/tree/main/sdk/schemaregistry/azure-data-schemaregistry-apacheavro)
97+
* **Python**: [azure-schemaregistry-avroserializer](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/schemaregistry/azure-schemaregistry-avroencoder/)
98+
* **JavaScript**: [@azure/schema-registry-avro](https://github.com/Azure/azure-sdk-for-js/tree/master/sdk/schemaregistry/schema-registry-avro)
99+
* **Apache Kafka**: Run [Kafka-integrated Apache Avro](https://github.com/Azure/azure-schema-registry-for-kafka/) serializers and deserializers backed by Azure Schema Registry. The Java client's Apache Kafka client serializer for the Azure Schema Registry can be used in any Apache Kafka scenario and with any Apache Kafka® based deployment or cloud service.
100+
* **Azure CLI**: For an example of adding a schema to a schema group using CLI, see [Adding a schema to a schema group using CLI](https://github.com/Azure/azure-event-hubs/tree/master/samples/Management/CLI/AddschematoSchemaGroups).
101+
* **PowerShell**: For an example of adding a schema to a schema group using PowerShell, see [Adding a schema to a schema group using PowerShell](https://github.com/Azure/azure-event-hubs/tree/master/samples/Management/PowerShell/AddingSchematoSchemagroups).
102102

103103
## Limits
104104
For limits (for example: number of schema groups in a namespace) of Event Hubs, see [Event Hubs quotas and limits](event-hubs-quotas.md).
@@ -107,7 +107,7 @@ For limits (for example: number of schema groups in a namespace) of Event Hubs,
107107
To access a schema registry programmatically, follow these steps:
108108

109109
1. [Register your application in Microsoft Entra ID](../active-directory/develop/quickstart-register-app.md)
110-
1. Add the security principal of the application to one of the following Azure RBAC(role-based access control) roles at the **namespace** level.
110+
1. Add the security principal of the application to one of the following Azure RBAC (role-based access control) roles at the **namespace** level.
111111

112112
| Role | Description |
113113
| ---- | ----------- |
@@ -116,7 +116,7 @@ To access a schema registry programmatically, follow these steps:
116116
| [Schema Registry Reader](../role-based-access-control/built-in-roles.md#schema-registry-reader-preview) | Read and list Schema Registry groups and schemas. |
117117
| [Schema Registry Contributor](../role-based-access-control/built-in-roles.md#schema-registry-reader-preview) | Read, write, and delete Schema Registry groups and schemas. |
118118

119-
For instructions on creating registering an application using the Azure portal, see [Register an app with Microsoft Entra ID](../active-directory/develop/quickstart-register-app.md). Note down the client ID (application ID), tenant ID, and the secret to use in the code.
119+
For instructions on creating registering an application using the Azure portal, see [Register an app with Microsoft Entra ID](../active-directory/develop/quickstart-register-app.md). Note down the client ID (application ID), tenant ID, and the secret to use in the code.
120120

121121
## Next steps
122122

0 commit comments

Comments
 (0)