Data Abstraction
It is by design that the IPF Core components are agnostic to the Data Types you are using.
Payment Warehouse
The Payment Warehouse expects certain fields to be present such as:
-
the
unitOfWorkIdused as part of the Payment Entry identifier, and -
the
globalStateto allow consumers to consolidate state
However, outside of data points required for identification, state and context, the main payload content is stored as a string.
Meaning any data type can be stringified and persisted in the warehouse.
The saved PaymentEntry also has a contentType attribute to enable deserialisation by consumers.
The PaymentEntry object is described in the Payment Warehouse documentation: Payment Entry Structure.
Payment Releaser
The Payment Releaser is agnostic to payload. The input into a Releaser command is always a Unit of Work ID. The Payment Releaser deals with the same data as the Payment Warehouse and therefore has the same restrictions, in that it requires a minimum data set in order to process the data (for example, obtaining individual transactions from a batch payment entry).
| Although the Payment Releaser is agnostic to data types, the default implementation of the Payment Releaser is not and is restricted to defined data types (e.g. a transaction is restricted to the ISO20022 CreditTransferTransaction datatype). |
Persistent Scheduler
The Scheduler does not contain any data and so is not restricted to data types.
In the Scheduler Payments solution, the Persistent Scheduler is responsible for notifying the releaser when a batch needs to be released. It does not contain the data payload itself and only holds identifiers (e.g. Unit Of Work ID) for the payload.