But apart from that, that idea of using a sub process for fetching this data takes care about the cache and TTL and eviction and everything is great because offload a lot of traffic that is going towards another service. So great thing.
So when we start to do the same test and we move with similar tests, so we did like a ramp up from zero to 10 requests per second, then sustained to 50 requests per second, we move with this optimized code to nine call starts. So absolutely great. So we have a number of calls. But moreover, look at the P99. P99 in the beginning was over two seconds. Now is not anymore.
And when I move even further and I start to have instead, let's say different metrics for the call start, we look into that and select 794, 800 milliseconds, OK, way less than what was before in the worst call start and even better, half a second, more or less in the best call start. But look at the execution time when those APIs are warm. We moved to 73 milliseconds in the worst one, but the best one was six milliseconds.
Now I had several of them when I was doing this testing that was around six, seven milliseconds. It was oscillating between these numbers. But the beauty of this approach is that you can really squeeze in. Now, that's why you have way less code stuff, because you can squeeze in way more response in a second because it takes just six milliseconds for getting the response. So obviously, the faster, the better.
The other cool thing of this is that if you think about that, if you have a multiple request, we've spin up a sandbox. We have by default, the concurrently a concurrency limit of a thousand is a soft limit that you can increase. Just ask to your solution architect in AWS or raise a ticket with the support and you can raise the limit of your lambda function. So that that's a good hint. It's just a soft limit that one doesn't.
OK, so if you have 100 millisecond response time for a sandbox, it means that you have 10 TPS per sandbox. But if I asked it, how many I have, you would say double it. Not really. There is another thing that you need to think about because, you know, we have this approach of using sandbox and these leaving alongside with other obviously customers. We guarantee that you have at least 10 requests per second per sandbox. I can guarantee you that when I try that, I was outperforming 10 very easily with this approach because I was, let's say, having a very fast execution environment. But that means obviously that if you're not capable to squeeze in less than 100 milliseconds, then probably you need you need to think about that you are going to handle roughly 10 TPS. Obviously, this is like the guaranteed number that is available in the documentation.
Comments