Architecture

How Integration Manager Works

IM integrations are built from three core building blocks — Routes, Mappers, and Filters — which together define how data flows between external systems and Pricefx.

Three-Tier Model

Layer

Purpose

What It Does

Routes

Orchestration

Define data flow: what triggers the route, where data comes from, how it is processed, where it goes

Mappers

Transformation

Map source data fields to Pricefx fields — rename, convert types, calculate values

Filters

Selection

Define criteria for which records to fetch, delete, or mass-edit

Deployment Model

All IM instances are provisioned — deployed and managed via PlatformManager on AWS or GCP. There are no self-hosted installations.

Developer --> Git push --> PlatformManager detects change --> Deploys to AWS/GCP
                                                          --> Restarts IM instance
                                                          --> Applies new config

Each IM instance is an isolated deployment with its own:

  • Git repository — source of truth for all routes, mappers, filters, and configuration

  • Memory and CPU allocation — configurable per instance via PlatformManager (e.g. 512 MB–4 GB RAM, 0.5–2 vCPU)

  • Runtime environment — dedicated JVM process, no shared state between instances

Infrastructure regions:

Cloud

Regions

AWS

EU (eu-central-1), US (us-east-1)

GCP

EU (europe-west1), US (us-central1)

  • Deployment: Automatic via PlatformManager on Git push

  • Connections: Managed via PlatformManager UI or connection JSON files

  • Monitoring: Via PlatformManager dashboard + error email notifications

See Project Structure for the complete directory layout of a provisioned instance.

Camel Integration Lifecycle

  1. PlatformManager deploys the IM instance from the Git repository

  2. Spring Boot starts, auto-configuration loads framework defaults

  3. config/application.properties applies project-specific configuration

  4. Connection definitions from connections/ are registered

  5. Mapper and filter XML files from mappers/ and filters/ are parsed

  6. Route XML files from routes/ are loaded into the Camel context

  7. Routes activate — triggers fire (file, timer, scheduler, event)

  8. Data flows through routes: source --> mapper --> pfx-api --> Pricefx

  9. onCompletion runs: flush, internal copy, cleanup

Custom Components

IM provides custom Camel components with the pfx- prefix:

Component

URI Prefix

Purpose

pfx-api

pfx-api:method

Pricefx API operations (loaddata, fetch, truncate, etc.)

pfx-csv

pfx-csv:marshal/unmarshal

CSV parsing and generation

pfx-excel

pfx-excel:read/write

Excel file manipulation

pfx-rest

pfx-rest:method

REST API calls to external systems

pfx-sftp

pfx-sftp:...

Secure file transfer

pfx-sql

pfx-sql:...

Database queries

pfx-event

pfx-event:...

Pricefx event processing

See Components for detailed reference of each component.

Configuration Layers

Configuration is resolved in this order (later overrides earlier):

  1. Framework defaults (built into the IM JAR)

  2. Project config/application.properties

  3. Profile-specific application-{profile}.properties

  4. Environment variables (managed via PlatformManager)

  5. PlatformManager managed properties and connections

Key Technologies

Technology

Version

Purpose

Java

17

Runtime

Apache Camel

4.1.0

Integration framework

Spring Boot

3.x

Application framework

Groovy


Scripting in mappers, routes, and tests

Spock


Test framework

WireMock


HTTP mocking for tests