Class ProtobufKafkaProcessor

java.lang.Object
ai.pipestream.kafka.connector.deployment.ProtobufKafkaProcessor

public class ProtobufKafkaProcessor extends Object
Quarkus build-time processor for the Pipeline Protobuf Kafka Connector extension.

This processor implements the "No-Cheating" architecture that automatically configures Kafka channels for Protobuf message serialization/deserialization. Instead of requiring manual configuration in application.properties, it scans the codebase at build time to discover

invalid reference
ai.pipestream.api.annotation.ProtobufIncoming
and
invalid reference
ai.pipestream.api.annotation.ProtobufChannel
annotations and generates the appropriate SmallRye Reactive Messaging configuration.

Architecture Overview

The processor operates in two phases:

  1. Build-Time Discovery: Uses Jandex to scan for Protobuf annotations and extract message types
  2. Configuration Generation: Produces SystemPropertyBuildItems that configure Kafka serializers, deserializers, and Apicurio Registry settings

Key Features

  • Automatic Protobuf type detection from method parameters and field generics
  • Topic name derivation from channel names (removes -in/-out suffixes)
  • Global Apicurio Registry URL bridging
  • Parent-first classloading configuration for Protobuf artifacts
  • Annotation-based property overrides

Thread Safety

This processor is designed to be thread-safe as it only reads from the Jandex index and produces build items. No mutable state is maintained between build steps.

Since:
0.2.10
See Also:
  • invalid reference
    ai.pipestream.api.annotation.ProtobufIncoming
  • invalid reference
    ai.pipestream.api.annotation.ProtobufChannel
  • ApicurioConfigurator
  • Constructor Details

    • ProtobufKafkaProcessor

      public ProtobufKafkaProcessor()