Correlation Data Model
Collection List
Correlation
Stores a single record for a given connector request if using the correlation service. A request/response is identified by the correlationId, which is assumed unique across request/response pairs. For more information on correlation see Message Association.
Collection Overview
Correlation
Fields
Below are the fields for the correlation collection:
| Field | Description | Example |
|---|---|---|
_id |
PK - Autogenerated by MongoDB |
63e0d35dcbd3c015141aad53 |
correlationId |
The identifier used for correlation of request response pairs. |
f6fe2a46-2c94-45dc-91dc-738e60db5542 |
associationId |
Processing Context associationId, most often the persistenceId of an IPF Processing Flow. |
Test|649cd025-41f4-428f-b791-6f9858d38a8d |
unitOfWorkId |
Part of the Processing Context. A unique IPF identifier for a given transaction/request that has been submitted to IPF and who’s uniqueness is only guaranteed by the generator and not enforced by IPF. For Instant payments this relates to a single Payment Processing, for Bulk/SCT there would be different unitOfWorkIds for each level of processing (Group, Instruction, and Transaction). |
5ffbf58a-443f-4108-a11b-f4e2b2edb3a3 |
processingEntity |
Part of the Processing Context. The financial processing entity is responsible for processing during the settlement of the payment. |
UNKNOWN |
clientRequestId |
Part of the Processing Context. An external identifier may have been provided to IPF by a client during Payment Initiation to identify a payment within IPF. |
44ee169f-e6a9-46be-98a3-48fba90ca58c |
creationDate |
The creation date of the record |
2023-04-27T12:00:19.501Z |
supportingContext |
Generic map of additional data fields |
{"system" : "accounting"} |
Example Record
{
"_id" : "644a63d32ab4e20293e7fdc4",
"correlationId" : "f6fe2a46-2c94-45dc-91dc-738e60db5542",
"associationId" : "Test|649cd025-41f4-428f-b791-6f9858d38a8d",
"unitOfWorkId" : "5ffbf58a-443f-4108-a11b-f4e2b2edb3a3",
"processingEntity" : "UNKNOWN",
"clientRequestId" : "44ee169f-e6a9-46be-98a3-48fba90ca58c",
"creationDate" : "2023-04-27T12:00:19.501Z",
"supportingContext" : {},
"_class" : "com.iconsolutions.ipf.core.connector.correlation.CorrelationRepository$CorrelationEntry"
}
Indexes
Indexes will be automatically created unless configured as follows;
# Allow application to create indexes upfront
ipf.connector.correlation.create-indexes=false
Below are the indexes for the correlation collection:
| Index Name | Fields | Description |
|---|---|---|
_id_ |
_id (ascending) |
ObjectId field generated by MongoDB. |
creationDate_1 |
creationDate (ascending) |
Has a TTL on entries, which is 1 hour by default. For more information on overriding this please refer to message association section TTL. |
correlation_1 |
correlationId (ascending) |
Used when finding entries to correlate against. |
Commit Quorum
If you want to specify how many replicas must acknowledge index creation before it is considered successful, you can override a default 'votingMembers' value by adjusting a setting below:
# The commit quorum to use when creating indexes
ipf.connector.correlation.commit-quorum = "votingMembers"
For more details, refer to creating indexes with commit quorum