Payload Size Throttle Types
Based on the throttle counter value, the payload size throttles can be any of the following subtypes:
- Input Payload Size
Specifies that the throttle count for a throttle is incremented by the size of the input message (that is, request message).
- Output Payload Size
Specifies that the throttle count for a throttle is incremented by the size of the output message (that is, response message).
- Transaction Payload Size
Specifies that the throttle count for a throttle is incremented by the sum of the size of input and output message (that is, request and response payload).
For example, you can define a payload size throttle T2 as follows:
Throttle Name: T2 Throttle Type : Rate Throttle Interval : 10 seconds Throttle Max Count: 10000 Throttle Counter: Input Payload Size
For this throttle T2 configuration, the Core Engine allows 10000 bytes of request payload size in 10 seconds. For instance, if the first incoming request has a payload size of 5000 bytes, the Core Engine performs the following actions:
- Checks the current throttle count, which is 0 bytes as this is the first request.
- Compares if the current throttle count (0 bytes) is less than or equal to the throttle max count (10000 bytes).
- Increments the current throttle count value by 5000 bytes, so the value of throttle count becomes 5000 bytes.
- Checks if the current throttle count (5000 bytes) is less than or equal to the throttle max count (10000 bytes).
- Forwards the request to the back-end service for processing as the throttle count is less than max count.
If the second request received after 3 seconds has a payload size of 5000 bytes, the Core Engine performs the following actions:
- Checks the current throttle count, which is 5000 bytes.
- Compares if the current throttle count (5000 bytes) is less than or equal to the throttle max count (10000 bytes).
- Increments the current throttle count value by 5000 bytes, so the value of throttle count becomes 10000 bytes.
- Checks if the current throttle count (10000 bytes) is less than or equal to the throttle max count (10000 bytes).
- Forwards the request to the back-end service for processing as the throttle count(10000) is less than the max count (10000).
If the third request received after 2 seconds has a payload size of 1000 bytes, the Core Engine performs the following actions:
- Checks the current throttle count, which is 10000 bytes.
- Compares if the current throttle count (10000 bytes) is less than or equal to the throttle max count (10000 bytes).
- Increments the current throttle count value by 5000 bytes, so the value of throttle count becomes 15000 bytes.
- Checks if the current throttle count (15000 bytes) is less than or equal to the throttle max count (10000 bytes).
- Rejects the request for processing as the throttle count (15000) reached the max count (10000). The Core Engine sends an error back to the client.