Always Fast

Some of the features in Gyxi are referred to as Always Fast and that is a principle being followed and monitored. Sure, some background features may take some time to complete, but the endpoints used likely with a real user waiting in the other end must be Always Fast.

These are Save, Get, List and Delete.

So let’s look at the last 26,000 calls to these 4 endpoints (10 minutes) and see how it went.

Amount of failures

None.

This is no surprise. These endpoints do not fail. They work 100% of the time.

Amount of throttling

Throttling can happen from time to time and will be seen as a 503 response code.

In this time span no calls were throttled.

Our goal is no throttling while we retain Always Fast. It sounds impossible but actually it is easier to prevent throttling when employing the Always Fast principle. The reason is that the faster the call is, the less time resources will be bound to that request and the less likely it is that throttling will occur.

Performance

So is it in fact Always Fast? Well, not always, but almost. It is a principle and a goal and we will get closer and closer to 100%

Out of 26,000 calls, 159 calls took more than 1 second.


That is 0.6% that did not hit the super ambitious performance target. That is a very low number but it is not perfect. It is not Always Fast.

Of those “slow” calls, none are more than 11 seconds and as you can see here, they seem to follow a very consistent pattern of either 7 or 10 seconds. That is no coincidence.

Consistency

If saving the data is slow for some reason it is simply enough to return 503 and let the caller call again. (note, this did not happen a single time in the test period, but for arguments sake).

However: Once data has been saved, consistency MUST be ensured. That means the call cannot be abandoned before that is achieved. When consistency is delayed for whatever reason, there is an internal timeout and then several backup systems are used. So that is the reason why it maxes out at 10 seconds, because that means for that single call (still only less than 0.6% of the time) the consistency actions happened on none of the primary systems and all of the backend systems.

Average

Finally the average response time for the entire test period.

Out of those calls under 1 second, which is far more than 99% of the calls, what was the average response time?

On those more than 25,000 calls, the average response time was 72 milliseconds.

Gyxi is not literally “Always Fast” but for all intents and purposes, yes it is.