Hi

I'm in favor of still echoing the X-Request-Id header. The purpose is
to define a kind of correlation and idempotency, established by the
client. It's a "classic" pattern in messaging systems.
For instance, in many Apache Camel routes dealing with REST endpoints,
we usually define X-Request-Id header in POST, PUT, and PATCH to
ensure idempotent message processing in case of a retry.

So, it's up to a client to deal with X-Request-Id in response (and do
the correlation if needed).

To simplify the "engineering", we could only echo X-Request-Id if
provided in the request.

Regards
JB

On Fri, Oct 31, 2025 at 1:16 PM Alexandre Dutra <[email protected]> wrote:
>
> Hi all,
>
> This thread follows up on [1] to discuss whether we should echo the
> client-generated X-Request-Id header in the response.
>
> Before Quarkus, the situation was unclear: Polaris on Dropwizard [2]
> did not seem to echo the header, but Dropwizard itself has a
> RequestIdFilter that does [3].
>
> We have two options:
>
> 1) Echo the X-Request-Id header.
>     - Pros: Allows clients to correlate requests and responses.
>     - Cons: risk of over-engineering since we don't have users asking for 
> this.
>
> 2) Do not echo the X-Request-Id header.
>     - Pros: No action required on the Polaris side.
>     - Cons: None apparent.
>
> I don't have a strong opinion, but I slightly favor option 1 to
> accommodate those who strongly value this feature.
>
> Thoughts?
>
> Thanks,
> Alex
>
> [1] https://lists.apache.org/thread/bb1qyxjt827t3tomv2xp0s1kovxjsp94
> [2] 
> https://github.com/apache/polaris/blob/4b18ec065ff16f74b11bc85fdc6ea9036eca7274/dropwizard/service/src/main/java/org/apache/polaris/service/dropwizard/PolarisApplication.java#L516
> [3] 
> https://github.com/dropwizard/dropwizard/blob/3833f0e1d9fb8cae256fe09379733b8d651f8b87/dropwizard-jersey/src/main/java/io/dropwizard/jersey/filter/RequestIdFilter.java#L42-L49

Reply via email to