code: def decode_message(self, message, is_key=False):
          
  
          if message is None:
              return None
  
          if len(message) <= 5:
              raise SerializerError("message is too small to decode")
  
          with ContextStringIO(message) as payload:
              magic, schema_id = struct.unpack('>bI', payload.read(5))
              if magic != MAGIC_BYTE:
                  raise SerializerError("message does not start with magic byte")
              decoder_func = self._get_decoder_func(schema_id, payload, is_key)
              return decoder_func(payload)
docs: Decode a message from kafka that has been encoded for use with
          the schema registry.
          :param str|bytes or None message: message key or value to be decoded
          :returns: Decoded message contents.
          :rtype dict: