Skip to content

Feature/typed pipeline#81

Merged
eschizoid merged 14 commits intomainfrom
feature/typed-pipeline
Mar 31, 2026
Merged

Feature/typed pipeline#81
eschizoid merged 14 commits intomainfrom
feature/typed-pipeline

Conversation

@eschizoid
Copy link
Copy Markdown
Owner

No description provided.

- Add MessagePipeline<T> interface for end-to-end (byte[] <-> T) processing
- Refactor MessageSink to a single-argument Consumer<T> for processed objects
- Update KPipeConsumer, CompositeMessageSink, and all sinks/tests to use new MessageSink<T> signature
- Simplify registry and pipeline builder APIs for typed pipelines and sinks
- Enhance AvroFormat with default schema support and implement deserialize
- Remove legacy processJson/processAvro helpers in favor of pipeline-based processing
- Update tests and integration tests to use new typed sink and pipeline APIs
- Improve error handling and logging consistency in sinks
…ocessing logic

- Add getSink() method to MessagePipeline interface for terminal sink retrieval
- Update KPipeConsumer to invoke pipeline sink if present, with fallback to consumer sink
- Adjust TypedPipelineBuilder to implement getSink()
- Improve documentation for inScopedCaches methods and registry sink wrapping
- Enhance AvroFormat deserialization with error handling
- Update App to use withPipeline instead of withProcessor
…or typed pipelines

- Replace format-specific pipeline builders with unified pipeline(MessageFormat) API in MessageProcessorRegistry
- Update App to use the new typed pipeline builder for protobuf processing
- Simplify consumer creation by removing explicit sink registry wiring
- Improve documentation and usage examples for new pipeline API in registry and processor classes
…ion with additional types

- Refactor MessageProcessorRegistry to streamline operator and sink wrapping, consolidating metrics logic and improving type safety
- Update getOperator and wrapSink to always return a wrapped function, ensuring consistent behavior
- Add predefined registry keys and registrations for JSON map and Avro generic record sinks in MessageSinkRegistry
- Improve TypedPipelineBuilder to log a warning when a sink key is missing in the registry
- Remove unused startTime field from App
@codecov
Copy link
Copy Markdown

codecov bot commented Mar 31, 2026

Codecov Report

❌ Patch coverage is 68.18182% with 91 lines in your changes missing coverage. Please review.
✅ Project coverage is 76.74%. Comparing base (aef80dc) to head (2f90d89).
⚠️ Report is 1 commits behind head on main.

Files with missing lines Patch % Lines
...rc/main/java/org/kpipe/consumer/KPipeConsumer.java 51.80% 29 Missing and 11 partials ⚠️
...a/org/kpipe/registry/MessageProcessorRegistry.java 59.52% 14 Missing and 3 partials ⚠️
.../java/org/kpipe/registry/TypedPipelineBuilder.java 68.08% 11 Missing and 4 partials ⚠️
...b/src/main/java/org/kpipe/registry/AvroFormat.java 58.33% 2 Missing and 3 partials ⚠️
.../src/main/java/org/kpipe/consumer/KPipeRunner.java 85.18% 3 Missing and 1 partial ⚠️
...b/src/main/java/org/kpipe/registry/JsonFormat.java 57.14% 1 Missing and 2 partials ⚠️
.../main/java/org/kpipe/registry/MessagePipeline.java 70.00% 2 Missing and 1 partial ⚠️
...n/java/org/kpipe/registry/MessageSinkRegistry.java 95.00% 1 Missing and 1 partial ⚠️
.../src/main/java/org/kpipe/sink/AvroConsoleSink.java 66.66% 1 Missing ⚠️
.../src/main/java/org/kpipe/sink/JsonConsoleSink.java 66.66% 1 Missing ⚠️
Additional details and impacted files
@@             Coverage Diff              @@
##               main      #81      +/-   ##
============================================
- Coverage     77.35%   76.74%   -0.61%     
+ Complexity      414      412       -2     
============================================
  Files            31       33       +2     
  Lines          1647     1574      -73     
  Branches        174      167       -7     
============================================
- Hits           1274     1208      -66     
+ Misses          272      269       -3     
+ Partials        101       97       -4     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

eschizoid added 10 commits April 1, 2026 06:56
…ine benchmark pipelines

- Replace byte[] sink keys with typed RegistryKey variants for JSON and Avro sinks
- Remove redundant sink keys and registrations from MessageSinkRegistry
- Update benchmarks and App to use new typed pipeline and sink APIs
- Refactor manual processing in benchmarks to use MessageFormat for serialization/deserialization
- Minor cleanup in TypedPipelineBuilder and test assertions
…ator/sink addition

- Remove redundant sink key factory from RegistryKey and clarify type signatures for json/avro helpers
- Simplify TypedPipelineBuilder operator addition to support varargs and direct registry lookup
- Refactor sink addition in TypedPipelineBuilder to allow multiple sinks and remove unnecessary logging
- Update usage in App and benchmarks to use new registry key helpers and streamlined pipeline builder API
- Improve documentation for clarity and consistency
@eschizoid eschizoid merged commit dac53d6 into main Mar 31, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant