Performance on test vs. production systems

Test system setup (PRE)

PRE systems are only suitable for functional tests, e.g., testing individual use cases of the integration. Fulfillmenttools generally does not allow load tests on these PRE environments (please see load testing for details). The fulfillmenttools platform scales to zero if no API traffic is present for some time. Scaling to zero applies to both the REST API and the GraphQL API. In this state, zero instances are ready to serve API traffic. The state of the platform is now cold.

Cold starts

On a cold system, the whole platform scales to zero. On the first API request (e.g., creating an Order via the REST API), the platform performs a cold start and starts the services required to serve the API. The fulfillmenttools platform is warm, and the API responds quickly to requests.

The cold start will block the first request until the API is ready to serve traffic. Starting the API gateway instances takes up to 30 seconds to complete. Since the fulfillmenttools platform is a distributed system and uses asynchronous events to communicate within the platform, this event distribution is also affected by cold starts. Nevertheless, if there is constant traffic on a tenant, cold starts are only encountered when resources are scaled up.

Scaling

Generally, test systems scale similarly to production systems once in a warm state. The fulfillmenttools platform scales based on parallel concurrent requests and resource usage (CPU, memory). See Scaling Behavior Under Load for details. Nevertheless, the max scaling configuration is different from production systems.

Production system setup (PRD)

The API gateways (HTTP and GraphQL) are always warm on production systems. Therefore, no cold starts are expected on the first request. These measures reduce API latency, and events are delivered promptly.

Typically, a production system has some activity (orders coming in, checkout options requests, pick jobs being picked, etc.). These activities also keep our asynchronous event processing services warm.

The production environment configuration ensures the elasticity and scalability of both the compute resources of our backend and database systems.

Last updated