Comments (7)
Using context.Headers.SetString("Message-Type", string.Empty)
works as a workaround for erasing specific headers but will leave this open for proper solution.
from kafkaflow.
Hi @mhkolk ,
Headers were defined as read-only by design, as they represent the message headers, which should not be editable; as an example of the same design principle, you can look at HttpRequestMessage
.
In the IMessageContext
, you have the Items
property, a dictionary, that you can use, adding there some data you may find useful for the message context.
from kafkaflow.
If we're using KafkaFlow for producing and have the ability to use middleware to manipulate messages I think it makes sense to allow manipulating headers (on the producer side). Developer using KF should be responsible for proper usage.
from kafkaflow.
In the
IMessageContext
, you have theItems
property, a dictionary, that you can use, adding there some data you may find useful for the message context.
This was more about removing stuff than adding. The ability to add is already present
from kafkaflow.
Hi @mhkolk,
The reason the headers collection does not allow that kind of manipulation is that it can introduce dependencies between the middlewares which is not something to encourage, since it is expected that the header collection represents the headers present in the Kafka message.
Is there any use case where the current implementation is blocking you from using KafkaFlow?
from kafkaflow.
It was just a suggestion, I worked around it by using SetString
, so it is not a blocker.
from kafkaflow.
Thank you for the feedback @mhkolk.
In the future, if this question is raised again we can revisit this subject, but for now, we should leave it as-is.
We will be closing this issue. Please feel free to respond to this message or reopen the issue if you'd like to continue the discussion or if you've encountered any new developments related to it.
Thank you for your contribution.
from kafkaflow.
Related Issues (20)
- Improve Worker Distribution Strategy documentation
- [Bug Report]: KafkaFlow OTEL trace is breaking after message consumption
- [Feature Request]: Analyze and adapt to OTEL Semantic Conventions version 1.23.0
- [Bug Report]: KafkaBus.StopAsync() blocks and does not return if there are messages still pending to be consumed HOT 3
- [Bug Report]: System.InvalidOperationException: There is no offsets in the received queue. Call Enqueue first HOT 1
- [Bug Report]: Distribution strategy by message/partition key issue. HOT 4
- [Bug Report]: Consumer Stuck on Exceeding Max Poll Interval
- [Bug Report]: Deserializer does not trigger next middleware in pipeline HOT 2
- [Feature Request]: Add AvroConvert schema registry serializer
- [Bug Report]: System.InvalidOperationException: Could not load the embedded file manifest 'Microsoft.Extensions.FileProviders.Embedded.Manifest.xml' for assembly 'KafkaFlow.Admin.Dashboard'.
- [Bug Report]: WebApi Sample not working as expected
- [Bug Report]: Incompatibility with Microsoft.IO.RecyclableMemoryStream 3.0.0 HOT 1
- [Feature Request]: Inheritance support in Typed Handler Middleware HOT 1
- [Feature Request]: Support JsonSerializerContext ie. JSON source generator HOT 1
- [Bug Report]:Unable to produce tombstone records HOT 7
- AddSingleTypeDeserializer tries to run for all types of messages[Bug Report]: HOT 5
- [Bug Report]: schema-registry service fails because broker is not available yet HOT 1
- [Feature Request]: Schema Registry Samples is Missing an Avro Generic Example HOT 3
- [Bug Report]: MicrosoftLogHandler is serializing exceptions using System.Text.Json HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from kafkaflow.