From 06936fe79757a5af127f3103d4d9cfa25cc32f7a Mon Sep 17 00:00:00 2001 From: Carles Arnal Date: Wed, 22 May 2024 10:52:44 +0200 Subject: [PATCH] Add dereference blog post (#70) * Add dereference blog post * Fix typo * Address pr comments * Update _posts/2024-05-14-registry-dereference.md Co-authored-by: Paul Wright <5154224+pwright@users.noreply.github.com> * Update _posts/2024-05-14-registry-dereference.md Co-authored-by: Paul Wright <5154224+pwright@users.noreply.github.com> * Update _posts/2024-05-14-registry-dereference.md Co-authored-by: Paul Wright <5154224+pwright@users.noreply.github.com> * Update _posts/2024-05-14-registry-dereference.md Co-authored-by: Paul Wright <5154224+pwright@users.noreply.github.com> * Update _posts/2024-05-14-registry-dereference.md Co-authored-by: Paul Wright <5154224+pwright@users.noreply.github.com> * Update _posts/2024-05-14-registry-dereference.md Co-authored-by: Paul Wright <5154224+pwright@users.noreply.github.com> * Address comments --------- Co-authored-by: Paul Wright <5154224+pwright@users.noreply.github.com> --- _posts/2024-05-14-registry-dereference.md | 286 ++++++++++++++++++ .../registry-dereference/file-system.png | Bin 0 -> 54991 bytes 2 files changed, 286 insertions(+) create mode 100644 _posts/2024-05-14-registry-dereference.md create mode 100644 images/posts/registry-dereference/file-system.png diff --git a/_posts/2024-05-14-registry-dereference.md b/_posts/2024-05-14-registry-dereference.md new file mode 100644 index 0000000..e4724db --- /dev/null +++ b/_posts/2024-05-14-registry-dereference.md @@ -0,0 +1,286 @@ +--- +layout: post +title: "Apicurio Registry - JSON Schema dereference" +date: 2024-05-14 16:00:00 +author: carles +categories: registry openapi jsonchema asyncapi avro +--- + +Apicurio Registry allows to manage artifacts with references as shown in the [documentation](https://www.apicur.io/registry/docs/apicurio-registry/2.5.x/getting-started/assembly-managing-registry-artifacts-api.html). +One of the cool features we've added on top of this is the possibility of using a dereference parameter for certain API endpoints that optionally allows you to fetch the full content of an artifact with all the references inlined within the same content. +This is especially useful in certain contexts to reduce the number of HTTP requests in the Kafka Serializers and Deserializers, as you will see in this blog. + +--- + +Intro +=== + +The code example used for this blog post can be found in the Apicurio Registry [examples](https://github.com/Apicurio/apicurio-registry/blob/2.6.x/examples/serdes-with-references/src/main/java/io/apicurio/registry/examples/references/JsonSerdeReferencesDereferencedExample.java). + +One of the limitations of the JSON Schema format is that you cannot discover the full schema from some data that adheres to the schema. That's the main reason why, for this serde, the schema being used has to be registered upfront, and that's what you see +in the code example from line [57 to line 132](https://github.com/Apicurio/apicurio-registry/blob/2.6.x/examples/serdes-with-references/src/main/java/io/apicurio/registry/examples/references/JsonSerdeReferencesDereferencedExample.java#L57-L132). +where the main schema _city.json_ is registered with all the references in the hierarchy. Along those lines, a full hierarchy of schemas is registered in Apicurio Registry. The hierarchy can be described as follows and represented as a tree: + +``` + citizen + | | | | + city qualification sample.address citizenIdentifier + | | + qualification qualification + +``` + +As you may notice, there are three different files with the same name. This is done on purpose to demonstrate that you can have different schemas with the same name within the same hierarchy. +When they're registered in the code example, they're registered under the same group but using different artifact ids, so they can be referenced from their main schema. + +Since an image is way better than trying to describe it, this is the structure in the file system: + +![Registry (before)](/images/posts/registry-dereference/file-system.png) + +In the code example there are also [java classes](https://github.com/Apicurio/apicurio-registry/tree/2.6.x/examples/serdes-with-references/src/main/java/io/apicurio/registry/examples/references/model) that represent each of the objects we have in the structure, so we can use them when producing Kafka messages. There is one Java class per each JSON Schema file. + +--- +JSON Schema dereference +=== + +By default, the endpoints that return the content of a particular artifact fetch just the main content, and then you must get the links to the references and, +one by one, do a full scan of the hierarchy to fetch any other sub-schema needed. For instance, the content of the _city.json_ schema is the following: + +```json +{ + "$id": "https://example.com/citizen.json", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "Citizen", + "type": "object", + "properties": { + "firstName": { + "type": "string", + "description": "The citizen's first name." + }, + "lastName": { + "type": "string", + "description": "The citizen's last name." + }, + "age": { + "description": "Age in years which must be equal to or greater than zero.", + "type": "integer", + "minimum": 0 + }, + "city": { + "$ref": "types/city/city.json" + }, + "identifier": { + "$ref": "types/identifier/citizenIdentifier.json" + }, + "qualifications": { + "type": "array", + "items": { + "$ref": "qualification.json" + } + } + }, + "required": [ + "city" + ] +} +``` + +Without dereferencing in order to be able to produce Kafka messages to adhere to this schema, that is already registered in Apicurio Registry, we would need to fetch all the nested references with multiple HTTP requests and then parse all of them while, when dereferencing is used, this is what you get: + +```json +{ + "$schema" : "http://json-schema.org/draft-07/schema#", + "title" : "Citizen", + "type" : "object", + "properties" : { + "firstName" : { + "description" : "The citizen's first name.", + "type" : "string" + }, + "lastName" : { + "description" : "The citizen's last name.", + "type" : "string" + }, + "identifier" : { + "title" : "Identifier", + "type" : "object", + "properties" : { + "identifier" : { + "description" : "The citizen identifier.", + "type" : "integer", + "minimum" : 0 + }, + "qualification" : { + "title" : "Qualification", + "type" : "object", + "properties" : { + "qualification" : { + "description" : "The identifier qualification", + "type" : "integer", + "minimum" : 20 + }, + "name" : { + "description" : "The subject's name", + "type" : "string" + } + } + } + } + }, + "qualifications" : { + "type" : "array", + "items" : { + "title" : "Qualification", + "type" : "object", + "properties" : { + "qualification" : { + "description" : "The qualification.", + "type" : "integer", + "minimum" : 0 + }, + "name" : { + "description" : "The subject's name", + "type" : "string" + } + } + } + }, + "city" : { + "title" : "City", + "type" : "object", + "properties" : { + "zipCode" : { + "description" : "The zip code.", + "type" : "integer", + "minimum" : 0 + }, + "qualification" : { + "title" : "Qualification", + "type" : "object", + "properties" : { + "qualification" : { + "description" : "The city qualification", + "type" : "integer", + "minimum" : 10 + }, + "name" : { + "description" : "The subject's name", + "type" : "string" + } + } + }, + "name" : { + "description" : "The city's name.", + "type" : "string" + } + } + }, + "age" : { + "description" : "Age in years which must be equal to or greater than zero.", + "type" : "integer", + "minimum" : 0 + } + }, + "required" : [ "city" ], + "$id" : "https://example.com/citizen.json" +} +``` +As you can see, that's the content of the full hierarchy, not just the schema of the _citizen_ element alone. There are two endpoints where you can get the content dereferenced, with the following curl commands: + +``` +curl --location 'http://localhost:8080/apis/registry/v2/ids/globalIds/7?dereference=true' +curl --location 'http://localhost:8080/apis/registry/v2/groups/default/artifacts/JsonSerdeReferencesExample?dereference=true' +curl --location 'http://localhost:8080/apis/registry/v2/groups/default/artifacts/JsonSerdeReferencesExample/versions/1?dereference=true' +``` + +JSON Schema Kafka Serde dereference +=== + +Now, in order to make good use of all of this, we can use a Kafka producer. For this example, in the Kafka Producer there is one extremely important property we must set, the schema resolver configuration option _SERIALIZER_DEREFERENCE_SCHEMA_. This is the option that will instruct the Schema Resolver to use the dereference parameter in the globalIds endpoint above (since that is the endpoint used by default to resolve the schema). + +```java +Properties props = new Properties(); + +// Configure kafka settings +props.putIfAbsent(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, SERVERS); +props.putIfAbsent(ProducerConfig.CLIENT_ID_CONFIG, "Producer-" + TOPIC_NAME); +props.putIfAbsent(ProducerConfig.ACKS_CONFIG, "all"); +props.putIfAbsent(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName()); +props.putIfAbsent(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, JsonSchemaKafkaSerializer.class.getName()); +props.putIfAbsent(SerdeConfig.ARTIFACT_RESOLVER_STRATEGY, SimpleTopicIdStrategy.class.getName()); +props.putIfAbsent(SerdeConfig.EXPLICIT_ARTIFACT_GROUP_ID, "default"); +props.putIfAbsent(SerdeConfig.REGISTRY_URL, REGISTRY_URL); + +//This is the most important configuration for this particular example. +props.putIfAbsent(SchemaResolverConfig.SERIALIZER_DEREFERENCE_SCHEMA, true); + + +// Create the Kafka producer +Producer producer = new KafkaProducer<>(props); +``` + +With this producer we can then send messages to Kafka that adhere to the _citizen_ schema as follows: + +```java +for(int idx = 0; idx < 5; idx++) { + City city=new City("New York",10001); + city.setQualification(new CityQualification("city_qualification",11)); + + CitizenIdentifier identifier=new CitizenIdentifier(123456789); + identifier.setIdentifierQualification(new IdentifierQualification("test_subject",20)); + Citizen citizen=new Citizen("Carles","Arnal",23,city,identifier,List.of(new Qualification(UUID.randomUUID().toString(),6),new Qualification(UUID.randomUUID().toString(),7),new Qualification(UUID.randomUUID().toString(),8))); + + // Send/produce the message on the Kafka Producer + ProducerRecord producedRecord = new ProducerRecord<>(topicName, SUBJECT_NAME, citizen); + producer.send(producedRecord); +} +``` + +And consume them with a consumer that is created as follows, instructing the deserializer to use the schema dereferenced with the following configuration property _DESERIALIZER_DEREFERENCE_SCHEMA_: + +```java +Properties props = new Properties(); + +props.putIfAbsent(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, SERVERS); +props.putIfAbsent(ConsumerConfig.GROUP_ID_CONFIG, "Consumer-" + TOPIC_NAME); +props.putIfAbsent(ConsumerConfig.ENABLE_AUTO_COMMIT_CONFIG, true); +props.putIfAbsent(ConsumerConfig.AUTO_COMMIT_INTERVAL_MS_CONFIG, "1000"); +props.putIfAbsent(ConsumerConfig.AUTO_OFFSET_RESET_CONFIG, "earliest"); +props.putIfAbsent(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class.getName()); +props.putIfAbsent(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, JsonSchemaKafkaDeserializer.class.getName()); +props.putIfAbsent(SerdeConfig.ARTIFACT_RESOLVER_STRATEGY, SimpleTopicIdStrategy.class.getName()); +props.putIfAbsent(SerdeConfig.EXPLICIT_ARTIFACT_GROUP_ID, "default"); +props.putIfAbsent(SerdeConfig.VALIDATION_ENABLED, true); + +//This is the most important configuration for this example, that instructs the deserializer to fetch the dereferenced schema. +props.putIfAbsent(SchemaResolverConfig.DESERIALIZER_DEREFERENCE_SCHEMA, true); + +// Configure Service Registry location +props.putIfAbsent(SerdeConfig.REGISTRY_URL, REGISTRY_URL); +// No other configuration needed for the deserializer, because the globalId of the schema +// the deserializer should use is sent as part of the payload. So the deserializer simply +// extracts that globalId and uses it to look up the Schema from the registry. + +// Create the Kafka Consumer +KafkaConsumer consumer = new KafkaConsumer<>(props); +``` + +And then consume the messages with the consumer configured above like this: + +```java +while (messageCount < 5) { + final ConsumerRecords records = consumer.poll(Duration.ofSeconds(1)); + messageCount += records.count(); + if (records.count() == 0) { + // Do nothing - no messages waiting. + System.out.println("No messages waiting..."); + } else records.forEach(record -> { + Citizen msg = record.value(); + System.out.println("Consumed a message: " + msg + " @ " + msg.getCity()); + }); +} +``` + + +Instead of doing an HTTP request to get the _citizen schema_, another request to fetch the pointers to the references, and, in this case (this process grows with the hierarchy size), another nine requests to discover the full hierarchy, a single HTTP request gets the full content of the hierarchy and then uses it to produce/consume messages. + diff --git a/images/posts/registry-dereference/file-system.png b/images/posts/registry-dereference/file-system.png new file mode 100644 index 0000000000000000000000000000000000000000..8cd55ae6f3494407433eb710231c6ffd244e5a9d GIT binary patch literal 54991 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 literal 0 HcmV?d00001