Documentation for a newer release is available. View Latest

Icon Payments DSL

IPF provides a unique Domain Specific Language (DSL) for payments, the core components of which are collectively referred to as "flo-lang". Over time, several extensions have been built on top of this foundation to enhance its capabilities.

This payments specific DSL leverages the functionality provided by Jetbrains MPS, and there are a few key terms worth remembering:

  • Flow - a flow is the core processing unit of any flo-lang solution. It describes a process that is self-contained.

  • Model - a model is a grouping of flo-lang components that logically belong together, and most importantly, are always deployed together. This will become a key concept as we look towards reuse ideas.

  • Solution - a solution is a further grouping of components that allows you to define several models in one area.

  • Project - a project is the overall container within MPS. It can contain several solutions.

IPF’s flo-lang offers a range of functional concepts that enable you to orchestrate typical processing capabilities. The following sections introduce these concepts, and it’s recommended that you read and understand them before diving into building your own flows.

The features that form flo-lang are built using the concepts described below. You are advised to read and understand these concepts before diving into building your own flows.

  • Flows - The flow is the foundation of an IPF application, its the glue holding together the orchestration steps.

  • States & Events - States represent a point in the processing of your system, where as events are persisted facts about something which has occurred in your system.

  • Domain Operations - A domain can represent part of our system or applications external to our domain, we model both.

  • Behaviours - A behaviour defines what the application should do when an event occurs whilst in a certain state.

  • Data & Mapping - How IPF considers Business Data Elements and mapping for transforming into different business data elements.