How to Start Your First IPF Implementation Project
Are you about to start your IPF journey? This page lists suggested steps you can take to make a successful start in building solutions with IPF.
1. Prerequisites
-
Make sure you understand where your solution built with IPF will be deployed. If the environment isn’t ready, make sure someone is working on getting it ready. You’ll need a suitable database and somewhere for the containers to be hosted
-
Identify if you need any training
-
Ensure you have access to our Nexus repository
2. Getting started for developers
-
Install and setup MPS
-
Create you own project from scratch: Create New Project
-
Create a sample credit transfer flow with a domain function or some kind of validation to be implemented (DSL tutorial link: DSL Domain Function)
-
Create an external domain (can also use fraud/sanction examples: DSL External Domain)
-
Implement validations and checks on Java side
-
Implement connectors in order to communicate with external domain(s)
-
Create test application (SpringBoot app)
-
Build the test flow
-
Build the test environment (example: docker containers for Mongo, Kafka, developer-app, use some of the IPF simulators as well)
-
Test the flow in a Docker environment
-
Deploy to your cloud environment and test there
3. Getting started for Business Analysts & Architects
-
Define the E2E business process you wish to implement
-
Identify the systems that will be used to implement the process and how they will interact to do so
-
Draft the MPS flows for the component(s) that will be built using IPF in MPS
-
Consider what kind of data model you want to use in the flows. Will you use an MDS approach, say perhaps a PAIN1? What if you need to store data like credit and debit account? While PAIN1 can store the creditor and debtor accounts, it can’t hold credit and debit accounts. How will you resolve this? Will you create a PDS to store the extra information that won’t fit in a PAIN1 or will you create a bespoke PDS structure to hold all payment related data for the flow in place of using something like a PAIN1? How will you display this structure on the GUI?
-
What will your approach be to reason codes? You may want to use the ISO reason codes (e.g. TM01 is timeout, AC06 is blocked account), but are these specific enough for you? The ISO codes are designed for use between banks and so don’t cover errors that occur during processing within a bank, such as no CSM found for creditor agent. Do you want to extend ISO or create your own bespoke set of reason codes?
-
Pick a simple flow to start with and write stories to implement the various steps in the flow. See this page for more information on how to approach story writing for an IPF implementation project.
-
Don’t forget to cover NFRs!
4. Starting the proper implementation
Once your developers and BA’s are ready, prioritise your backlog and start the normal agile process. Remember to play any needed setup stories to do things like setup repos, create services etc. before starting functional stories. You may find in the early stages of a project it is worth, as well having refinement sessions, to have pre-refinement sessions with a smaller, more senior group to iron out any big unknowns without taking up the time of the whole team. Once the team has settled into a normal delivery rhythm pre-refinement most likely won’t be needed anymore.