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.