Closed jstroem closed 2 years ago
I know very little about yarpc, but - is the AddHeader
a viable option?
Looking at https://github.com/yarpc/yarpc-go/blob/dev/api/transport/response.go#L55, we would need to modify the interface, which is a breaking change?
Sorry, I didn't call it out, I didn't realize the impact of it earlier.
I agree with @rabbbit responseWriter implements the interface transport.ResponseWriter, and transport.ResponseWrite interface has to be modified to make it work. Modifying an existing common interface could be a breaking change and is something needs to be planned very carefully while keeping all users in mind that include internal as well as external users. Also we should evaluate the value this change brings against the sensitivity of this change.
I agree, the contribution of this PR is not too much and since it requires changing the interface it is not worth it.
I still think it makes sense to do the optimisations on picking the right header-key so you don't have to transport strings unnecessarily - so I'll open a new PR for that.
Closing this one.
AddHeader
method as a shorthand to add a response header. This PR also includes various benchmarks onAddHeader(s)
, which has been used to remove some allocations.The only outside facing change this PR comes with is that if an http header has
Rpc-Header-
as a prefix, likeRpc-Header-Foo
we now don't add anotherRpc-Header-
as a prefix. (See tests intransport/http/header_test.go
).Benchmark results for
AddHeaders
pre vs post change:Benchmarks on
AddHeader
: