You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by "treuherz (via GitHub)" <gi...@apache.org> on 2024/01/17 12:34:57 UTC

[PR] [Producer] Add context to ProducerInterceptor [pulsar-client-go]

treuherz opened a new pull request, #1157:
URL: https://github.com/apache/pulsar-client-go/pull/1157

   
   Fixes #443
   
   ### Motivation
   
   The ProducerInterceptor does not take a context.Context. This makes it difficult to write useful interceptors that can integrate with common tracing SDKs like OpenTelemetry. These SDKs typically follow the convention of using a Context to propagate metadata vertically through a call stack. 
   
   If an interceptor knows that the pre-Send method can put metadata (such as trace IDs or logging values) in a context.Context, which the post-Send method will be able to pull out, then it does not have to do its own potentially-costly state management.
   
   For an example of a another library using a similar convention, see [pgx, the Postgres go driver](https://github.com/jackc/pgx/blob/9ab9e3c40bbb33c6f37359c87508cbc6a9830ed6/tracer.go#L10)
   
   ### Modifications
   
   This change adds a context.Context argument to the ProducerInterceptor interface, and passes it between the pre- and post-Send interceptor methods.
   
   ### Verifying this change
   
     - [ ] Make sure that the change passes the CI checks.
   
   This change added tests and can be verified as follows:
   
     - Unit tests that rely on values in the interceptor context.
   
   ### Does this pull request potentially affect one of the following parts:
   
     - Dependencies (does it add or upgrade a dependency): _no_
     - The public API: **yes**, adding parameters to Interceptor interface
     - The schema: _no_
     - The default values of configurations: _no_
     - The wire protocol: _no_
   
   ### Documentation
   
     - Does this pull request introduce a new feature? _sort of_
     - If yes, how is the feature documented?  _go docs_
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@pulsar.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org