Performance on test versus production
As a customer of fulfillmenttools, you'll automatically have access to two environments:
Pre-production: The
projectIdwould beocff-example-preProduction: The
projectIdwould beocff-example-prd
Pre-production (PRE)
Pre-production (PRE) environments are suitable for functional testing of integration use cases. fulfillmenttools doesn't allow load testing in pre-production environments. For more information, refer to the load testing guidelines.
In specific cases, fulfillmenttools can temporarily create a production-like environment on pre-production with similar scaling properties and database connection configurations. To request this, contact us through the service portal.
Cold starts
To conserve resources, pre-production environments scale to zero when no API traffic is present for a period of time. This applies to both the REST and GraphQL APIs. When the platform is in this idle state, it's 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 fulfillmenttools is a distributed system that uses asynchronous events for internal communication, this event distribution is also affected by cold starts. If a tenant experiences constant traffic, cold starts typically occur only when resources are scaled up.
Scaling
Once in a warm state, pre-production scales similarly to production environments based on parallel concurrent requests and resource usage, such as CPU and memory. Details on this behavior are available in the Limits and scaling article. However, the maximum scaling configuration in pre-production differs from that in production.
Production (PRD)
Production environments (PRD) are configured for high availability and performance. On production, 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 activities in a production system, such as incoming orders or pick job processing, keep the asynchronous event processing services warm. The production environment configuration ensures the elasticity and scalability of both the backend compute resources and the database systems.
Last updated