code: def encode_record_with_schema(self, topic, schema, record, is_key=False):
          
          serialize_err = KeySerializerError if is_key else ValueSerializerError
  
          subject_suffix = ('-key' if is_key else '-value')
          # get the latest schema for the subject
          subject = topic + subject_suffix
          # register it
          schema_id = self.registry_client.register(subject, schema)
          if not schema_id:
              message = "Unable to retrieve schema id for subject %s" % (subject)
              raise serialize_err(message)
  
          # cache writer
          self.id_to_writers[schema_id] = self._get_encoder_func(schema)
  
          return self.encode_record_with_schema_id(schema_id, record, is_key=is_key)
docs: Given a parsed avro schema, encode a record for the given topic.  The
          record is expected to be a dictionary.
  
          The schema is registered with the subject of 'topic-value'
          :param str topic: Topic name
          :param schema schema: Avro Schema
          :param dict record: An object to serialize
          :param bool is_key: If the record is a key
          :returns: Encoded record with schema ID as bytes
          :rtype: bytes