danielfigueiredo opened a new issue #61: Support for Avro schema on 
`createProducer`
URL: https://github.com/apache/pulsar-client-node/issues/61
 
 
   Would it be possible to add a `schema` property on the config object that 
initializes `createProducer`? Similar to what Python does, we could initialize 
[avro-js](https://www.npmjs.com/package/avro-js) with the JSON schema and call 
`type.getSchema()` to initialize the producer.
   
   Having to disable schema validation on topics isn't ideal for some cases and 
I think only Java and Python are the clients that have schema support.
   
   A pseudo code would look like:
   
   ```js
       const client = new Pulsar.Client({
         serviceUrl: 'pulsar://localhost:6650',
       });
   
       const type = avro.parse({
         name: 'Pet',
         type: 'record',
         fields: [
           {name: 'kind', type: {name: 'Kind', type: 'enum', symbols: ['CAT', 
'DOG']}},
           {name: 'name', type: 'string'}
         ]
       });
   
       const producer = await client.createProducer({
         topic: 'persistent://public/default/my-topic',
         schema: type.getSchema(),
       });
   ```
   
   I'm not sure if the schema validation happens on the client when creating 
the producer, even if that is the case `avro-js` has methods to check whether 
JS objects are valid for a given schema.
   
   On that same line, alternatively, is there any guidelines on how to 
implement a client? What makes it more difficult for me is that I don't know 
c++ and I would like to contribute with the JS library (specially Typescript).

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services

Reply via email to