Fluent Commerce Logo
Docs

Performance (MCQs & RP)

Essential knowledge

Changed on:

17 Apr 2025

Overview

This article covers Performance testing recommendations. 

Key points

  • The key areas to think about in relation to optimising Fluent Commerce platform performance are inventory updates and availability calls - these two areas account for the majority of platform load for most Fluent OMS implementations.
  • Below are a number of recommendations for optimising platform performance across some key areas.
Recommended Practices:
  • Fulfilment Options API Optimisation
    • Enable the`fc.fulfilmentoptions.create.event.persistence` setting to switch on asynchronous mode for internal Fluent API calls - this can improve createFulfilmentOption API response times by up to 50%
    • https://docs.fluentcommerce.com/essential-knowledge/fulfilment-options-improvements-enablement
  • Inventory Updates Optimisation
    • If possible only send changed stock on hand values via the batch API to reduce redundant load on the platform.
    • If the above is not possible or practical, send full inventory loads (i.e snapshots) via the Batch API and enable Fluent Batch Pre-Processing feature to filter the incoming data so that only changed stock on hand values are sent to the Fluent workflow engine.
  • Where possible minimise the number of Virtual Catalogues
    • Having many virtual catalogues can generate significant platform load and effect performance.  Every every time an inventory position is updated an event is sent to update all associated Virtual Catalogues. In addition, having too many Virtual Catalogues can cause a breach of the client's contracted Inventory Position Change (IPC) allowance.
    • Consider the following strategies for minimising the number of Virtual Catalogues: 
      • Use a single BASE virtual catalogue for order sourcing and filter available inventory positions during workflow execution rather than creating multiple virtual catalogues to pre-filter the available inventory.
      • Share virtual catalogues across multiple retailers where relevant.
  • Workflow Performance
  • Performance Testing
    • Simulate real-world scenarios by running processes in parallel
    • For example - run inventory updates and order feed while testing product availability calls.
Optional Practices:
  • Fulfilment Option Workflow Design
    • Consider having multiple FULFILMENT_OPTION workflows and calling the relevant one rather than having a single workflow with logical gates and branches.
    • Example: 
      •   Not recommended: having a single FULFILMENT_OPTION workflow to support all of the front-end availability call scenarios (e.g. PDP call, checkout call, Home Delivery call, Click & Collect call, etc.).  This is normally achieved by using a logical gate in the workflow to validate the incoming data to define which availability check should be performed and to direct the flow down the corresponding workflow branch.
      •  Recommended: create a separate FULFILMENT_OPTION workflow for each front-end availability call scenario and call the corresponding workflow each time using the `fulfilmentOption.type` field.