Traffic Management App and Proxy wise

Need to understand how traffic management of APIGEE works. I am giving a example to understand how APIGEE team is currently handling this thing.

For example:

  • Total capacity of API GW: 1000 TPS
  • Proxy “A” is assigned a TPS of 100 TPS, so the rest capacity of APIGEE API GW will be 1000-100=900 if the Proxy “A” runs with full 100 TPS.
  • Now there are 3 partners or 3 Apps are going to use proxy “A”. So now we allocate quota to the partners. Let’s assume, we allocate quota of 300 Transaction per day to App “X”, 500 to App “Y”, 600 to App ”Z” and if all three partners started to use the same proxy at the same time with 100 TPS then what will happen? Spike arrest right?
  • In this case how can we assign TPS to the partners so that the max limit of that proxy which is 100 will not be exceeded for spike arrest. Same question is for Quota as well.
  • How to calculate max quota limit of a APIGEE platform of capacity of 1000 TPS?
0 3 307
3 REPLIES 3

RE 1,2

- Where does this capacity come from?

- Why are you assigning a TPS to a particular proxy?

RE 3,4

Spike Arrest is intended to prevent burst of traffic reaching your backend.

You could configure it to use your developer/app as an identifier, and you can do the same for Quota

RE 5

Quota is intended to provide a way to enforce number of requests over time. I don't see how it's relevant in a "capacity" question

Every system has a capacity limitation based on assigned infra and peripheral facts. We can not design a system with unlimited capacity. What I am trying to say if we have a APIGEE system which can handle 1000 Transactions per second then how we need to assign Spike Arrest on user or app level instead of putting SA on proxy level.

If you have any document how to configure SA on app/user level, please refer me to the link. I got your point on the quota policy.

Thanks

sidd-harth
Participant V

If you want to have different Spike Arrest value for different Applications, Applications are linked with products. So we can use ATTRIBUTES in PRODUCTS.

Define the spike arrest rate value in attributes fields of product.

In proxy level before spike arrest we can get this attributes value through apikey or OAuth flow variables and use that in Spike Arrest dynamically.

If you are validating with an API Key, then you can do the following...

<SpikeArrest name="MySpikeArrest">

<Rate ref="verifyapikey.{policy_name}.apiproduct.{custom_attrib_name}"/>

</SpikeArrest>

If you are using OAuth you can use...

<SpikeArrest name="MySpikeArrest">

<Rate ref="apiproduct.{custom_attribute_name}"/>

</SpikeArrest>