Microservices
Updated On 24 March 2024 | Min(s) read

MCMS Data Ingestion

This section provides the details on Ingester functions, Data flow, Initial load and field mapping in the Marketing Catalog Microservice.

Marketing Catalog Microservice receives the product update information as events asynchronously from the record-keeping system (for example, Transact). Using the Product-ID, Marketing Catalog Microservice in turn calls an IRIS API to fetch all the details of the product and then it updates the Microservice database.

Currently, Marketing Catalog provides three Ingester functions which help to ingest Transact product events.

  • TransactProductLineIngester — Inserts the Product Line data into the ms_marketingcatalog_productline table in the Marketing Catalog Microservice database.
  • TransactProductGroupIngester — Inserts the Product Group data into the ms_marketingcatalog_productgroup table in the Marketing Catalog Microservice database.
  • TransactProductIngester — Inserts the Product data into the ms_marketingcatalog_productinformation table in the Marketing Catalog Microservice database.
  • TransactPeriodicInterestIngester — Inserts the Periodic Interest data in to ms_marketingcatalog_periodicinterest table in Marketing Catalog Microservice database.
  • TransactBasicInterestIngester — Inserts the Basic Interest data in to ms_marketingcatalog_basicinterest table in Marketing Catalog Microservice database.
  • TransactManagedAccountIngester— Inserts the Portfolio Product data into ms_marketingcatalog_productinformation table in Marketing-Catalog Microservice database.

Ingester listens to events on the streaming platform configured (Kafka) and ingests data asynchronously in near real-time in the Marketing Catalog Microservice database. The underlying streaming platform does not provide a message sequence guarantee to the Microservice application.

Data Flow

Initial load processing triggers events for existing business data related to Marketing Catalog in Temenos Transact. The data flow follows the following route:

T24 Application tables → F_DATA_EVENTS → DES (Kafka) → MS Marketing-Catalog Ingester → IRIS API Call → MS Marketing-Catalog Ingester → MS Marketing-Catalog DB

Where,

  • Temenos Transact uses Relational Replication to load the application records (AA.PRODUCT) to F_DATA_EVENTS table.
  • DES (Data Event Stream) fetches and transforms the record from F_DATA_EVENTS to Kafka topics.
  • In Microservice, ingestor consumes kafka topic and store it in the underlying Microservice database.

Transact Applications

The following are the Transact applications:

  • AA.PRODUCT
  • AA.PRODUCT.LINE
  • AA.PRODUCT.GROUP
  • BASIC.INTEREST
  • PERIODIC.INTEREST
  • MANAGED.ACCOUNT
Application Description
DES DES fetches and transforms the record from F_DATA_EVENTS and lists it in Kafka topics.
Microservice Ingestor consumes Kafka topic and stores it in the underlying Microservice database.
Transact Using Relational Replication loads the application records to F_DATA_EVENTS table.

Processing Initial Load

This section helps you to perform the initial load on Marketing Catalog microservices database tables with Temenos Transact application records.

The prerequisite before you perform initial load is to run the following:

  • Marketing Catalog Microservice: Ingester topic should be pre-configured (See Deployment Instructions section for more information).
  • Data Event Stream (DES)
  • Transact
The ingestion of products from Transact to Microservice happens through published API (IRIS) and the resource path is as shown below:
  • IRIS end point for Release version 202010 or before - v1.0.0/product/HOME.EQUITY.LOAN/productDetails
  • IRIS end point from release version 202101 - v1.0.0/product/HOME.EQUITY.LOAN/productConditions)

The Ingestion must happen sequentially in the following order:

  1. BASIC.INTEREST
  2. PERIODIC.INTEREST
  3. AA.PRODUCT.LINE
  4. AA.PRODUCT.GROUP
  5. AA.PRODUCT

Procedure:

  1. Create a record in RR.PARAM application for FXXX.BASIC.INTEREST, FXXX.PERIODIC.INTEREST, FXXX.AA.PRODUCT, F.AA.PRODUCT.LINE, and FXXX.AA.PRODUCT.GROUP application with ILP.REQUIRED set to YES.

  2. After the successful commit, the schema registry in DES will be updated with BASIC_INTEREST, PERIODIC_INTEREST, AA_PRODUCT, AA_PRODUCT_LINE and AA_PRODUCT_GROUP schemas

    Schema Registry - localhost:8081/subjects

    ["DesInstallEvent","CATEG_ENTRY","SECTOR","BASIC_INTEREST","PERIODIC_INTEREST", "DataEventIdEot","AA_PRODUCT","AA_PRODUCT_LINE","AA_PRODUCT_GROUP","DataEvent","STMT_ENTRY","RE_CONSOL_SPEC_ENTRY","SchemaInfoEvent","DataEventIdRecovery"]
  3. Start the Service TSM and BNK/RR.TAKEON in Transact.

  4. Launch the TSM tRun START.TSM –DEBUG.

  5. Launch the agent allocated for the service BNK/RR.TAKEON using the commane tRun tSA <AgentNumber>.

  6. All the BASIC.INTEREST, PERIODIC.INTEREST, PRODUCT.LINE, PRODUCT.GROUP and published AA.PRODUCT records are loaded into the marketing catalog micro service after the completion of the service.

Field Mapping

The field mapping from Transact to Marketing Catalog Microservice is shown in the following table.

MS Entity

MS Attribute

Sub Attribute

Data Type

Description

Transact Application  
Product Line productLineRef   String The top-level product line in which the product is ultimately attached AA.PRODUCT.LINE REC.ID
productLineName   String Specifies the display name of the Product Line AA.PRODUCT.LINE DESCRIPTION
externalIndicator   boolean Indicates the external product line AA.PRODUCT.LINE REC.ID
Product Group productGroupRef   String The groups under a specific product line in which the product is ultimately grouped. AA.PRODUCT.GROUP REC.ID
branchRef   String Unique identifier of the branch AA.PRODUCT.GROUP CO.CODE
productLineRef   String The top-level product line in which the product is ultimately attached AA.PRODUCT.GROUP PRODUCT.LINE
externalIndicator   boolean Indicates the external product group AA.PRODUCT.GROUP GROUP.TYPE
Facilities

type

 

String

Specifies the type of the product features

AA.PRD.CAT.FACILITY

SERVICE

isMandatory

 

Boolean

Specifies whether the product feature is mandatory or not

AA.PRD.CAT.FACILITY

SERVICE.AVAILABILITY

defaultValue

 

String

Specifies the customer option for the product features

AA.PRD.CAT.FACILITY

CUSTOMER.OPTION

Product Information

 

 

 

 

 

 

 

 

 

 

productRef

 

String

Unique identifier for the product in the core banking system

AA.PRODUCT REC.ID

productName

 

String

Specifies the display name of the Product

AA.PRODUCT.DESIGNER DESCRIPTION

productLine

 

String

The top-level product line in which the product is ultimately attached

PRODUCT.GROUP PRODUCT.LINE

productGroup

 

String

The groups under a specific product line in which the product is ultimately grouped.

AA.PRODUCT.DESIGNER PRODUCT.GROUP

branchRef

 

String

Unique identifier of the branch

AA.PRODUCT.DESIGNER CO.CODE

availableFrom

 

date

Date from when the product is available.

AA.PRODUCT CAT.AVAILABLE.DATE

availableTo

 

date

Date until when the product is available.

AA.PRODUCT CAT.EXPIRY.DATE

externalIndicator

 

boolean

Indicates the external products

PRODUCT.GROUP PRODUCT.LINE

productFeatures

type

String

Specifies the type of the product features

AA.PRD.CAT.FACILITY SERVICE

isMandatory

Boolean

Specifies whether the product feature is mandatory or not

AA.PRD.CAT.FACILITY SERVICE.AVAILABILITY

defaultValue

String

Specifies  the customer option for the product features

AA.PRD.CAT.FACILITY CUSTOMER.OPTION
optionValue value String Specifies  the available customer option for the product features STANDARD.SELECTION SYS.VAL.PROG
Product Facilities type   String Specifies the type of the product facilities AA.PRD.CAT.FACILITY SERVICE
isMandatory   Boolean Specifies whether the product facility is mandatory or not AA.PRD.CAT.FACILITY SERVICE.AVAILABILITY
defaultValue   String Specifies  the customer option for the product facilities AA.PRD.CAT.FACILITY CUSTOMER.OPTION
optionValue value String Specifies  the available customer option for the product facilities STANDARD.SELECTION SYS.VAL.PROG
Product Details currency   String Currency of the product AA.PRODUCT.DESIGNER CURRENCY
Product Conditions

 

currency   String Currency of the product AA.PRODUCT.DESIGNER CURRENCY
InterestDetails property String Indicates the reference for Interest property condition AA.PRD.CAT.INTEREST REC.ID
period String Indicates the property conditions applicable for the defined period AA.PRD.CAT.INTEREST REC.ID
effectiveDate date This field represents the effective date from which these product conditions come into force. AA.PRODUCT.DESIGNER EFFECTIVE.DATE
rateTierType String Each tier is specified by defining the amount up to which the interest rate applies. Additionally, each tier can be of a different interest rate type. AA.PRD.CAT.INTEREST RATE.TIER.TYPE
dayBasis String Type of day basis used for interest calculation AA.PRD.CAT.INTEREST DAY.BASIS
compoundType String Compounding interest applies a factor to the compound interest calculation based upon the number of compounding periods in the year. This field defines the number of compounding periods to be applied. AA.PRD.CAT.INTEREST COMPOUND.TYPE
compoundYield String This field indicates how the effective rate is calculated, when set to YIELD the interest rate defined is taken as the annual effective rate AA.PRD.CAT.INTEREST COMPOUND.YIELD.METHOD

interestDetails. creditInterests /interestDetails. debitInterests

tierAmount decimal The tier amount related to the field RATE.TIER.TYPE AA.PRD.CAT.INTEREST TIER.AMOUNT
fixedRate decimal The fixed interest rate used to calculate the loan for the defined period. AA.PRD.CAT.INTEREST FIXED.RATE
floatingIndex String This field defines the basic interest key that needs to be used for calculating the interest based on floating interest AA.PRD.CAT.INTEREST FLOATING.INDEX
periodicIndex String This field defines a periodic rate is tied to an index (e.g. LIBOR) which is dependent on a period of time (e.g. term) and possibly an amount AA.PRD.CAT.INTEREST PERIODIC.INDEX
periodicPeriod String Defines the interest period to be used when linking to PERIODIC.INTEREST. AA.PRD.CAT.INTEREST PERIODIC.PERIOD
periodicMethod String If system does not find a interest rate in the correct bucket of PERIODIC.INTEREST table, it automatically applies a method to arrive at a rate chosen by this method. AA.PRD.CAT.INTEREST PERIODIC.METHOD
periodicReset String This indicates the reset period of the index stated. AA.PRD.CAT.INTEREST PERIODIC.RESET
creditInterests. marginDetails /debitInterests. marginDetails type String Identifies whether there are single or multiple margins AA.PRD.CAT.INTEREST MARGIN.TYPE
marginOperand String The options are ADD or SUB. This indicates whether the MARGIN.RATE should be added or subtracted from the interest rate. AA.PRD.CAT.INTEREST MARGIN.OPER
marginRate decimal A margin rate can be used to adjust the specified rate of interest and to appropriately reflect any rate profit realized. The result is the nominal rate of interest. AA.PRD.CAT.INTEREST MARGIN.RATE
ChargeDetails property String Indicates the reference for Charge property condition AA.PRD.CAT.CHARGE REC.ID
chargeCurrency String Defines the currency of the charge property. Charges will be calculated for the Currency defined in this field. AA.PRD.CAT.CHARGE CURRENCY
period String Indicates the property conditions applicable for the defined period AA.PRD.CAT.CHARGE REC.ID
effectiveDate date This field represents the effective date from which these product conditions come into force. AA.PRODUCT.DESIGNER EFFECTIVE.DATE
type String Specifies whether the charge is Adhoc or Scheduled AA.PRD.CAT.ACTIVITY.CHARGE CHARGE
chargeType String This field defines if the charge amount is fixed amount or to be calculated. AA.PRD.CAT.CHARGE CHARGE.TYPE
fixedAmount decimal This defines fixed charge amount to be returned. AA.PRD.CAT.CHARGE FIXED.AMOUNT
PaymentSchedules property String Indicates the reference for schedules property condition AA.PRD.CAT.PAYMENT.SCHEDULE REC.ID
period String Indicates the property conditions applicable for the defined period AA.PRD.CAT.PAYMENT.SCHEDULE REC.ID
effectiveDate date This field represents the effective date from which these product conditions come into force. AA.PRODUCT.DESIGNER EFFECTIVE.DATE
paymentSchedules. paymentTypes paymentType String Indicates the type of the payment AA.PRD.CAT.PAYMENT.SCHEDULE PAYMENT.TYPE
method String Payment method by which the repayments are made. AA.PRD.CAT.PAYMENT.SCHEDULE PAYMENT.METHOD
payFrequency String This field indicates the frequency at which the payments will be made due. AA.PRD.CAT.PAYMENT.SCHEDULE PAYMENT.FREQ
properties Collection<String> The interest and charges property for which the schedules are applicable. AA.PRD.CAT.PAYMENT.SCHEDULE PROPERTY
PaymentTypes. paymentDates startDate String This field indicates the actual payment start date. AA.PRD.CAT.PAYMENT.SCHEDULE START.DATE
endDate String An End Date can be specified to indicate when the payments should terminate AA.PRD.CAT.PAYMENT.SCHEDULE END.DATE
TermAmounts property String Indicates the reference for Term amount property condition AA.PRD.CAT.TERM.AMOUNT REC.ID
period String Indicates the property conditions applicable for the defined period AA.PRD.CAT.TERM.AMOUNT REC.ID
effectiveDate date This field represents the effective date from which these product conditions come into force. AA.PRODUCT.DESIGNER EFFECTIVE.DATE
amount decimal Defines the total amount which will be lent or deposited for the term (i.e. the committed amount). AA.PRD.CAT.TERM.AMOUNT TERM
term String Determines the period of time by which the amount must be repaid (either to the bank in the case of a loan or to the customer in the case of a deposit) During product definition it will be common to default the term (e.g. a 30 year mortgage) AA.PRD.CAT.TERM.AMOUNT AMOUNT
ReportingDetails property String Indicates the reference for Reporting property condition AA.PRD.CAT.REPORTING REC.ID
effectiveDate date This field represents the effective date from which these product conditions come into force. AA.PRODUCT.DESIGNER EFFECTIVE.DATE
reportingDetails. aprTypes aprType String Indicates the reference for APR calculation. AA.PRD.CAT.REPORTING APR.TYPE
excludeProperty Collection<String> Indicates properties which will be excluded for APR calculation for the given APR scenario. AA.PRD.CAT.REPORTING EXCLUDE.PROPERTY

Copyright © 2020- Temenos Headquarters SA

Published on :
Tuesday, September 2, 2025 12:40:15 PM IST