This just appends headers to the end of the list, and inject can happen repeatedly in processing a message. With baggage, this can result it a lot of repeated data.
We could instead headers.remove(key).add(key, value.getBytes(StandardCharsets.UTF_8)); which trades an iteration over all headers and potential arraylist removals for each key.
https://github.com/opentracing-contrib/java-kafka-client/blob/release-0.1.15/opentracing-kafka-client/src/main/java/io/opentracing/contrib/kafka/HeadersMapInjectAdapter.java#L38
This just appends headers to the end of the list, and
inject
can happen repeatedly in processing a message. With baggage, this can result it a lot of repeated data.We could instead
headers.remove(key).add(key, value.getBytes(StandardCharsets.UTF_8));
which trades an iteration over all headers and potential arraylist removals for each key.