Performance on test vs. production systems

Test systems (PRE)

Test systems, also known as pre-production (PRE) environments, are suitable for functional testing of integration use cases. The fulfillmenttools platform does not permit load tests on PRE environments. For more information, refer to the load testing guidelines.

In specific cases, fulfillmenttools can temporarily create a production-like environment on PRE with similar scaling properties and database connection configurations. To request this, contact support through the service portal.

Cold starts

To conserve resources, PRE environments scale to zero when no API traffic is present for a period. This applies to both the REST API and the GraphQL API. When the platform is in this idle state, it is considered "cold."

The first API request to a cold system, such as creating an Order, triggers a cold start. During a cold start, the platform initiates the necessary services to serve the API. This initial request is blocked until the API gateway instances are ready, which can take up to 30 seconds. Once the services are running, the platform becomes "warm" and subsequent API requests respond quickly.

Because the fulfillmenttools platform is a distributed system that uses asynchronous events for internal communication, this event distribution is also affected by cold starts. If a tenant has constant traffic, cold starts are typically only encountered when resources are scaled up.

Scaling

Once in a warm state, PRE systems scale similarly to production systems based on parallel concurrent requests and resource usage, such as CPU and memory. Details on this behavior are available in the Scaling Behavior Under Load documentation. However, the maximum scaling configuration on PRE systems is different from that of production systems.

Production systems (PRD)

Production systems (PRD) are configured for high availability and performance. On PRD systems, the REST API and GraphQL API gateways are always "warm," meaning no cold starts occur on the first request. This configuration minimizes API latency and ensures that events are delivered promptly.

Typical activity on a production system, such as incoming orders or pick job processing, keeps the asynchronous event processing services warm. The PRD environment configuration ensures the elasticity and scalability of both the backend compute resources and the database systems.

Last updated