Articles

Produire et consommer des messages Avro avec Redpanda Schema Registry

Produire et consommer des messages Avro avec Redpanda Schema Registry est une tâche essentielle pour les applications modernes. Découvrez comment le faire facilement!

Si vous êtes familier avec Apache Kafka®, vous avez peut-être rencontré un registre de schémas compatible avec Kafka – un composant distinct que vous déployez en dehors de votre cluster Kafka, car Kafka n’en a pas intégré. 

Essentiellement, un schéma est une description logique de la façon dont vos données sont organisées, et donc un registre de schémas fournit un référentiel central pour ces schémas, permettant aux producteurs et aux consommateurs d’envoyer et de recevoir des données entre eux de manière transparente. Pour les architectures orientées événements, cela peut devenir complexe et difficile à gérer à mesure que vous évoluez, car les schémas de données peuvent changer et évoluer au fil du temps (pouvant potentiellement tout casser plus tard). 

## Utilisation d’un registre de schémas compatible avec Apache Kafka®

L’architecture Apache Kafka® est bien connue et il est possible de rencontrer un registre de schémas compatible avec Kafka, qui est un composant distinct que l’on déploie en dehors du cluster Kafka, car celui-ci n’en comporte pas.

Essentiellement, un schéma est une description logique de la façon dont vos données sont organisées et un registre de schémas fournit donc un référentiel central pour ces schémas, permettant aux producteurs et aux consommateurs d’envoyer et de recevoir des données entre eux sans heurts. Pour les architectures orientées événements, cela peut devenir complexe et difficile à gérer à mesure que l’on se développe, car les schémas de données peuvent changer et évoluer dans le temps (pouvant potentiellement provoquer des dysfonctionnements plus tard).

Un registre de schémas est donc une solution très pratique pour gérer ce type d’architecture. Il permet aux producteurs et aux consommateurs d’accéder facilement aux schémas des données, ce qui leur permet de s’assurer que les données envoyées et reçues sont cohérentes et conformes. De plus, le registre de schémas permet de conserver l’historique des versions des schémas, ce qui peut être très utile pour le débogage et le développement.

Enfin, le registre de schémas peut également être utilisé pour aider à la validation des données. Les producteurs peuvent envoyer des données à un registre de schémas avant de les envoyer à Kafka, ce qui permet de s’assurer que les données sont conformes aux schémas attendus. De même, les consommateurs peuvent également valider les données reçues avant de les traiter, ce qui permet d’assurer la qualité des données et d’améliorer l’efficacité des processus.

En somme, le registre de schémas est un outil très pratique pour gérer les architectures orientées événements. Il permet aux producteurs et aux consommateurs d’accéder facilement aux schémas des données, ce qui leur permet de s’assurer que les données envoyées et reçues sont cohérentes et conformes. De plus, il permet également d’aider à la validation des données, ce qui permet d’améliorer la qualité et l’efficacité des processus.

Source de l’article sur DZONE

In this post, we will be implementing a Kafka Producer and Consumer using the Ports and Adapters (a.k.a. Hexagonal) architecture. We will also be using the KafkaAvroSerializer to send specific Avro types using Kafka and the Kafka Schema Registry.

Overall Flow

The overall workflow is something like this: a domain object (Person.java) is sent from BusinessDomainService to Kafka where it gets serialized to Avro object (PersonDto.java); which is then consumed from the Kafka topic via a Kafka Consumer and translated from Avro object (PersonDto.java) back to domain object (Person.java) before being sent back to BusinessDomainService for some arbitrary post-processing.

Source de l’article sur DZONE

Apache Spark supports many different data formats, such as the ubiquitous CSV format and web-friendly JSON format. Common formats used primarily for big data analytical purposes are Apache Parquet and Apache Avro.

In this post, we’re going to cover the properties of these four formats — CSV, JSON, Parquet, and Avro with Apache Spark.

Source de l’article sur DZONE