Merge throttling and backpressure
Matt Heath
9 years ago
29 | 29 | |
30 | 30 | * Requests SHALL be executed within a request [context](https://blog.golang.org/context), which the server will pass through the request chain. |
31 | 31 | |
32 | ### Throttling | |
32 | ### Throttling & Backpressure | |
33 | 33 | |
34 | 34 | * A server MAY throttle inbound requests and reject requests from clients based on a number of factors. |
35 | 35 | * A server MAY respond with either an Out Of Capacity error, or a Rate Limit Exceeded error when rejecting requests. |
36 | 36 | * A server MAY limit the total number of concurrent requests it can serve. |
37 | 37 | * A server MAY impose rate limits on specific clients. |
38 | 38 | * Rate limit behaviour MAY range from minimum request intervals, to time based, or leaky bucket algorithms. |
39 | * A server MAY implement a pluggable throttle interface, allowing richer implementations - such as an implementation which shares information across instances of the service | |
40 | ||
41 | ### Backpressure | |
42 | ||
43 | * A server MAY return back-pressure information to clients, via the transport. | |
39 | * A server MAY implement a pluggable throttle interface, allowing richer implementations - such as an implementation which shares information across instances of the service. | |
44 | 40 | |
45 | 41 | ### SLAs |
46 | 42 |