Hi, I'm working on an application where we want to be able to set transport-level headers whenever an Avro RPC is invoked.
Presently, the Avro Java implementation has no distinction between transports that support these types of protocols and normal protocols. I'd like to toss around the idea of creating a new abstract server and transceiver class. They would include methods that you could use to guard method invocations (or return statements) to set headers in the transport. While this on some level defeats some of a purpose of Avro (abstracting the underlying transport), I think it also provides a lot of flexibility for a common scenario. There's a number of protocols that can be used as transports where headers may be used for multiple application level tasks (in the case I have in mind, the header can be used for authorization and security labels). It seems very relevant to provide a mechanism for setting headers that is consistent across protocols. Has anyone put any thought into this? Does anyone have feedback on this design concept?
