/// <summary>
        /// Deserialize a record value from a byte array into <typeparamref name="T"/> value
        /// </summary>
        /// <param name="data">serialized bytes.</param>
        /// <param name="context">serialization context</param>
        /// <returns>deserialized <typeparamref name="T"/> using data; may be null</returns>

        public override T Deserialize(byte[] data, SerializationContext context)
        {
            if (!isInitialized)
            {
                throw new StreamsException($"SchemaAvroSerDes<{typeof(T).Name} is not initialized !");
            }

            return(avroDeserializer
                   .AsSyncOverAsync()
                   .Deserialize(data, data == null, context));
        }