DanielLeens opened a new pull request, #11706:
URL: https://github.com/apache/seatunnel/pull/11706

   ### Purpose of this pull request
   
   A user asked (via a support-bot Q&A export I was reviewing for documentation 
gaps) whether
   SeaTunnel's Kafka source `avro` format supports Confluent 
Schema-Registry-encoded Avro messages
   ("confluent-avro"). The existing FAQ entry lists `avro` as a supported 
format but doesn't clarify
   this, so the question keeps coming up.
   
   Verified against current source: `MessageFormat.AVRO` deserializes via 
`AvroDeserializationSchema`
   (`connector-kafka/.../serialize` and `.../source/KafkaSourceConfig.java`, 
`case AVRO:`), which has no
   schema-registry-header-stripping logic. This is different from `PROTOBUF`, 
which explicitly supports
   it via `strip_schema_registry_header` / 
`SchemaRegistryAwareProtobufDeserializationSchema` (see the
   existing "Protobuf with Schema Registry wire format" section in the same 
doc). Concretely: if a topic
   was produced with Confluent's `KafkaAvroSerializer`, each message carries a 
5-byte wire-format prefix
   (magic byte + schema id) before the Avro payload. `format = avro` does not 
strip that prefix, so
   deserialization will fail or produce corrupted data.
   
   Extended the existing "What message formats does Kafka Source support?" FAQ 
entry (`docs/en` and
   `docs/zh`) to state this limitation explicitly, at the same level of detail 
as the existing
   Protobuf-with-Schema-Registry section, and cross-linked to it.
   
   ### Does this PR introduce _any_ user-facing change?
   
   No functional change. Documentation-only addition.
   
   ### How was this patch tested?
   
   Documentation-only change, so `./mvnw spotless:apply` is a no-op (spotless 
in this repo only formats
   `<java>` and `<pom>`, not markdown). The technical claim was verified 
directly against current `dev`
   HEAD source:
   - 
`seatunnel-connectors-v2/connector-kafka/src/main/java/org/apache/seatunnel/connectors/seatunnel/kafka/config/MessageFormat.java`
     -- confirms the enum values, including the absence of a distinct 
Confluent-Avro variant.
   - 
`seatunnel-connectors-v2/connector-kafka/src/main/java/org/apache/seatunnel/connectors/seatunnel/kafka/source/KafkaSourceConfig.java`
     -- confirms the `AVRO` case only consults `avro_schema` / catalog schema, 
with no schema-registry
     header handling, versus the `PROTOBUF` case which explicitly branches on
     `STRIP_SCHEMA_REGISTRY_HEADER`.
   - Confirmed the cross-reference anchor 
`#protobuf-with-schema-registry-wire-format` matches the
     existing `### Protobuf with Schema Registry wire format` heading in both 
`docs/en` and `docs/zh`.
   
   ### Check list
   
   * [x] No new JAR binary package is added.
   * [x] English and Chinese documentation both updated.
   * [x] No incompatible configuration or API change is introduced (docs-only).
   * [x] N/A -- documentation-only change, no test coverage applicable.


-- 
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.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to