Skip to content

http: HCM changes to support rate limited / metered data #6140

@mattklein123

Description

@mattklein123

In thinking about actually implementing the rate rate limiting portion of #5942, I realized that we don't really have any good way to do what is required for either rate limiting body data or generally building a filter that emits data on a periodic basis, while potentially still buffering/watermarking incoming data.

The most well-formed thought I have right now (which isn't very formed) is something like: add explicit decodeData(...) / encodeData(...) calls which allow a decoding / encoding filter to directly inject data to further filters. This is different from commonContinue() in the sense that we would not be using HCM buffering. This would allow buffering/watermarking of incoming data to be disjoint from continued data. The downside to this is I don't think it would correctly work if a further filter buffers.

I've also considered some capability to continue only a portion of the buffered data using some kind of buffer slice, but that also seems very complicated.

I'm going to think about this more tomorrow, but I figured I would open an issue to see if anyone that has been working in this space recently has thought about this already or has any good ideas. If not I will report back! cc @alyssawilk @snowp @soya3129 @lizan

Metadata

Metadata

Assignees

Labels

design proposalNeeds design doc/proposal before implementationenhancementFeature requests. Not bugs or questions.

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions