Skip to main content
Version: 8.4.x

Integration Container

The Integration Server supports data exchange between Commerce and third-party and backend systems. For more information about the service, see Integration Server Overview.

Prerequisites​

The integration container image must be built and available. For information on building container images, see Building Container Images.

Suitable Environment Types​

The Integration application is a core application and is always deployed.

Include in Development and QA Environments?Include in Authoring Environments?Include in Live Environments?
YesYesYes

Configuration​

The sections below describe typical configurations.

Container user​

The application container images are built to be run as user app_runner (user ID 10001), with user group app_runner (group ID 10001). Ensure that you specify the correct user and group when you run the container. Volumes should also be readable and writeable by this user. Consult your container orchestration documentation for more information.

tip

Below is an example security context snippet for a Kubernetes deployment.yaml file.

securityContext:
runAsUser: 10001
runAsGroup: 10001
fsGroup: 10001

Note about production sizing and tuning​

The values shared in this document are suggestions that are known to work well in typical scenarios.

important

Planning and validation is required to finalize resource and scaling settings for production. The settings should be reviewed and re-validated periodically, such as when significant Commerce application changes are deployed or when traffic and load requirements change. For more information, see the Self-Managed Commerce Sizing Guide.

Resource allocation​

Resource allocation can vary by usage and load. Below are typical values.

ResourceNon ProductionProduction Like (See Note)
Container Memory (MB)30723072
Container Cores0.53
Java Heap (MB)20482048

Scaling and replicas​

This service is stateful and should not be scaled to maintain a consistent user experience.

ConfigurationNon ProductionProduction Like (See Note)
Minimum Replicas11
Maximum Replicas11
Max Surge (%)25100
Max Unavailable (%)250

Ports​

PortNon ProductionProductionPurposeComment
8080YesYesAllows external systems to integrate with Commerce.This port should only be exposed to systems that integrate with Commerce.
8180YesYesHealth and liveness checksThis port should only be exposed internally, ideally only to the container orchestrator.
8888OptionalOptionalJMX.The container listens on this port when the ENABLE_JMX environment variable is set to true. This port should only be exposed internally to users and tools that require access to JMX data.
1081OptionalNoJava debugger.The container will listen on this port when the ENABLE_DEBUG environment variable is set to true. This port should only be exposed internally, to developers who debug Java application code. This port is typically not open in production.

Health, Liveness and Readiness​

Container orchestration tools monitor the health and responsiveness of containers. For information about supported endpoints, see Health Monitoring Usage.

Volumes​

Mount PointPurposeComment
/hdumpStore Java heap dump files, which are created when a Java OutOfMemoryError occurs, on a filesystem that persists after the container dies. These files are large but can be very helpful to diagnose Java memory usage issues.Each heap dump file can be multiple gigabytes in size so it is important to ensure that the filesystem is large and regularly maintained so that it does not fill up. Consider using a shared filesystem across all containers for this purpose.

Environment Variables​

The application is configured using container environment variables. Some environment variables must be set and some are optional. The environment variables are read and consumed by the container entrypoint scripts. Review Common Environment Variables for a list of required and optional environment variables that are common to all Commerce application services.

The following table shows additional environment variables specific to this service:

Variable NameDescriptionRequired
EP_INTEGRATION_X_JVM_ARGSCan be used to set additional custom Java arguments.No
EP_CONTAINER_MEM_INTEGRATIONUsed to set the Java heap size. Both the initial heap (Xms) and maximum heap (Xmx) are set to this value.Yes
important

The entrypoint scripts are and will remain the source of truth on the required environment variables. Review the container entrypoint scripts in your selected release to validate the required variables.