We had a test on concurrent rate limit with StrictOnTtl set to “true”. What I noticed was if the backend response is less than ttl value it does not clean the counter but waits for ttl time to clear counters.
I was actually expecting StrictOnTtl to only clear counter in cases where backend does not respond with in ttl time.
e.g. count = 1 and ttl=20 was set. Backend was set to respond in 5secs.
Expected Result: Service should allow atleast 4 transactions in 20secs.
Actual Result : Service processed only 1 transaction until 20secs and received next after ttl was reached and counter reset.
I had to set StrictOnTtl to false to enable more transaction as and when thread was complete.
Is that the expected behaviour ?