[ 
https://issues.apache.org/jira/browse/THRIFT-5164?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Yuxuan Wang updated THRIFT-5164:
--------------------------------
    Description: 
I saw that this idea was discussed before in THRIFT-4553, but want to reopen 
the discussion to see if there's a change of mind.

We (Reddit) recently implemented TProcessor level middleware support in our 
Baseplate.go library, and we think that our implementation is generic enough 
that it might make sense to contribute that into the thrift library. The 
related implementation are all in this file: 
https://github.com/reddit/baseplate.go/blob/4225e42dc8dde56b222ac7ea3a4ff63aa726f6a6/thriftbp/middlewares.go

https://github.com/reddit/baseplate.go/blob/4225e42dc8dde56b222ac7ea3a4ff63aa726f6a6/tracing/middlewares.go#L40-L64
 is an example of how a tracing middleware is implemented.

If we think that's a good idea, then we can contribute that into thrift repo 
(with renames, of course). One implementation detail I'm not sure is that 
whether we want to expand the TProcessor interface to also include ProcessorMap 
and AddToProcessorMap, or do we want to keep the two iinterfaces separate.

  was:
I saw that this idea was discussed before in THRIFT-4553, but want to reopen 
the discussion to see if there's a change of mind.

We (Reddit) recently implemented TProcessor level middleware support in our 
Baseplate.go library, and we think that our implementation is generic enough 
that it might make sense to contribute that into the thrift library. The 
related implementation are all in this file: 
https://github.com/reddit/baseplate.go/blob/master/thriftbp/middlewares.go

https://github.com/reddit/baseplate.go/blob/4225e42dc8dde56b222ac7ea3a4ff63aa726f6a6/tracing/middlewares.go#L40-L64
 is an example of how a tracing middleware is implemented.

If we think that's a good idea, then we can contribute that into thrift repo 
(with renames, of course). One implementation detail I'm not sure is that 
whether we want to expand the TProcessor interface to also include ProcessorMap 
and AddToProcessorMap, or do we want to keep the two iinterfaces separate.


> Go middleware support
> ---------------------
>
>                 Key: THRIFT-5164
>                 URL: https://issues.apache.org/jira/browse/THRIFT-5164
>             Project: Thrift
>          Issue Type: Improvement
>          Components: Go - Library
>            Reporter: Yuxuan Wang
>            Priority: Major
>
> I saw that this idea was discussed before in THRIFT-4553, but want to reopen 
> the discussion to see if there's a change of mind.
> We (Reddit) recently implemented TProcessor level middleware support in our 
> Baseplate.go library, and we think that our implementation is generic enough 
> that it might make sense to contribute that into the thrift library. The 
> related implementation are all in this file: 
> https://github.com/reddit/baseplate.go/blob/4225e42dc8dde56b222ac7ea3a4ff63aa726f6a6/thriftbp/middlewares.go
> https://github.com/reddit/baseplate.go/blob/4225e42dc8dde56b222ac7ea3a4ff63aa726f6a6/tracing/middlewares.go#L40-L64
>  is an example of how a tracing middleware is implemented.
> If we think that's a good idea, then we can contribute that into thrift repo 
> (with renames, of course). One implementation detail I'm not sure is that 
> whether we want to expand the TProcessor interface to also include 
> ProcessorMap and AddToProcessorMap, or do we want to keep the two iinterfaces 
> separate.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to