In recent ClickHouse versions (21.3) Avro format for kafka does not work at all.
In ClickHouse 20.3 one Avro formatted kafka message can read, than stall forever.
Reportedly in ClickHouse prior 20.3 Avro formatted kafka messages work Ok while contain only single record
{
public:
    AvroDeserializer(const Block & header, avro::ValidSchema schema, const FormatSettings & format_settings);
    void deserializeRow(MutableColumns & columns, avro::Decoder & decoder, RowReadExtension & ext) const;
private:
    using DeserializeFn = std::function<void(IColumn & column, avro::Decoder & decoder)>;
    using SkipFn = std::function<void(avro::Decoder & decoder)>;
    static DeserializeFn createDeserializeFn(avro::NodePtr root_node, DataTypePtr target_type);
    SkipFn createSkipFn(avro::NodePtr root_node);
    struct Action
    {
        enum Type {Noop, Deserialize, Skip, Record, Union};
        Type type;
        
        int target_column_idx;
        DeserializeFn deserialize_fn;
        
        SkipFn skip_fn;
        
        std::vector<Action> actions;
        Action() : type(Noop) {}
        Action(int target_column_idx_, DeserializeFn deserialize_fn_)
            : type(Deserialize)
            , target_column_idx(target_column_idx_)
            , deserialize_fn(deserialize_fn_) {}
        Action(SkipFn skip_fn_)