[ 
https://issues.apache.org/jira/browse/NIFI-14878?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18016843#comment-18016843
 ] 

ASF subversion and git services commented on NIFI-14878:
--------------------------------------------------------

Commit 3097a90f0519f023cc640053eb89055a30de0d81 in nifi's branch 
refs/heads/main from lkuchars
[ https://gitbox.apache.org/repos/asf?p=nifi.git;h=3097a90f05 ]

NIFI-14878 Added StandardProtobufReader for Protobuf Record Processing (#10214)

Co-authored-by: ForThoseWhoComeAfter <[email protected]>
Signed-off-by: David Handermann <[email protected]>

> Implement StandardProtobufReader Controller Service for Protobuf Record 
> Processing
> ----------------------------------------------------------------------------------
>
>                 Key: NIFI-14878
>                 URL: https://issues.apache.org/jira/browse/NIFI-14878
>             Project: Apache NiFi
>          Issue Type: Improvement
>          Components: Extensions
>    Affects Versions: 2.6.0
>            Reporter: Lukas Kucharski
>            Assignee: Lukas Kucharski
>            Priority: Major
>          Time Spent: 9h
>  Remaining Estimate: 0h
>
> h2. Summary
> Implement StandardProtobufReader Controller Service for Protobuf Record 
> Processing
> h2. Description
> This enhancement completes the Protobuf support implementation by introducing 
> the *StandardProtobufReader* controller service. This represents Phase 2 of 
> the Confluent Protobuf integration, building upon the foundational services 
> delivered in Phase 1 (linked).
> The new reader addresses limitations of the existing *ProtobufReader* 
> component, which requires manual proto file management and cannot effectively 
> operate in clustered environments without manual schema distribution across 
> nodes. Also, the existing reader is designed to work with filesystem source 
> only, as the 'Proto Directory' property is always required, even when the 
> schema access strategy is set to 'Text Property'
> h2. Key Components Implemented
> *StandardProtobufReader* Controller Service
>  - New Record Reader Implementation: Controller service extending 
> *SchemaRegistryService* for Protobuf record processing
>  - Multiple Schema Access Strategies: Supports flexible schema resolution 
> methods without requiring local proto files
> h3. Schema Access Strategy Support
> The service supports the following schema access strategies:
> 1. Schema Text: Direct schema definition input
> 2. Schema Name from Registry: Reference schemas by name from the configured 
> registry
> 3. Schema Reference Reader: Use the schema id embedded in the protobuf 
> payload header. Then use the schema registry to fetch the schema by the the 
> id.
> h2. Key points
>  - {*}ProtobufSchemaCompiler{*}: component for compiling and managing 
> Protobuf schemas
>  - Schema Caching
>  - Reference Resolution: Automatic resolution of imported/referenced schemas 
> from registry
>  - Compiles raw Protobuf schema definitions using wire library
>  - Handles complex schema dependencies and imports
>  -  Schema Resolution: Determines schema source based on configured strategy
>  -  Message Name Resolution: Identifies target message type from payload or 
> configuration
>  - Record Deserialization: Converts Protobuf binary data to NiFi records
>  
> h3. Design Decisions
>  - New Implementation: Created as separate component rather than extending 
> existing ProtobufReader to avoid breaking changes
>  - Focused Scope: Does not support "Generate From Proto File" strategy, 
> focusing on registry-based approaches
>  - Clean API: Streamlined property configuration without legacy constraints



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to