Slacker manager provides three APIs:
Synchronous API to get advice about the operation being performed (accept, reject, …)
Event/Snapshot stream providing data from the services to the risk engine
Command API allowing risk functions to perform various actions using bank microservice.
This documents will guide you how to configure and create notification in slacker manager services.
How to configure the notification
Configuration for notifications in slacker manager service, add below text into resources/application.yml file.
safi-services: output-manager: uri: ${SAFI_OUTPUT_MANAGER_URL:`https://output-manager.apps.dev.safibank.online`}
Create a configuration class file in package (
ph.safibank.slackermanager.property
) to map the fields in yml file
@ConfigurationProperties("safi-services") class SafiServiceConfiguration { @Inject lateinit var outPutManager: OutPutManager @ConfigurationProperties("output-manager") class OutPutManager { lateinit var uri: String } }
How to send notification
Slack manager subscribe the changes in GCP subscription channel(
slacker-manager-commands-sub-dev
)Slacker will delegate StackerCommandExecutor to process the message received from GCP sub topics
StackerCommandExecutor will construct a new message with a unique
idempotencyId
and call output manager api through http post methodOutput manager will send this message to Kafka topic(message.internal.channel) with a customized
idempotencyId
Publisher-subscriber relationships can be one-to-many (fan-out), many-to-one (fan-in), and many-to-many, as shown in the following diagram:
Below is an example for risk transaction reject scenario:
Go to GCP PUB/SUB menu, choose the subscription the slacker manager service listen, then create a mockup message with below code and click publish.
{ "commandType": "SEND_NOTIFICATION", "customerId": "2b827c7b-a7e9-4116-af78-940963fd85e4", "params": { "messageType": "RISK_TRANSACTION_REJECTED", "amount": "1100" } }
Go to slacker manager service add a breakpoint in
GooglePubSubCommandListener
Slacker manager will forward this message to output manager service when the command type is
SEND_NOTIFICATION
{ "idempotencyId":"c604b22b-940b-448f-922d-0bef9af382a9", "customerId":"2b827c7b-a7e9-4116-af78-940963fd85e4", "amount":"1100" }
Output manager will handle the request and forward this message to Kafka topic
message.internal.channel
{ "idempotencyId": "c604b22b-940b-448f-922d-0bef9af382a9", "customerId": "2b827c7b-a7e9-4116-af78-940963fd85e4", "messageTemplate": "Your transaction with amount {amount} was approved by risk.", "messageTitle": "SaFi bank notification", "deliveryChannel": "PUSH", "messageValues": {"amount": "1100.0"}, "metadata": {} }
Notification types
Highlight important information in a panel like this one. To edit this panel's color or style, select one of the options in the menu.
Related articles
WIP - DLQ Management & Error Handling in Kafka
Attachments:
~drawio~557058:6252ea08-006d-4991-baf7-f107bb56d703~Notification workflow.tmp (application/vnd.jgraph.mxfile)
~drawio~557058:6252ea08-006d-4991-baf7-f107bb56d703~Notification workflow.tmp (application/vnd.jgraph.mxfile)
~drawio~557058:6252ea08-006d-4991-baf7-f107bb56d703~Notification workflow.tmp (application/vnd.jgraph.mxfile)
~drawio~557058:6252ea08-006d-4991-baf7-f107bb56d703~Notification workflow.tmp (application/vnd.jgraph.mxfile)
~drawio~557058:6252ea08-006d-4991-baf7-f107bb56d703~Notification workflow.tmp (application/vnd.jgraph.mxfile)
~drawio~557058:6252ea08-006d-4991-baf7-f107bb56d703~Notification workflow.tmp (application/vnd.jgraph.mxfile)
~drawio~557058:6252ea08-006d-4991-baf7-f107bb56d703~Notification workflow.tmp (application/vnd.jgraph.mxfile)
~drawio~557058:6252ea08-006d-4991-baf7-f107bb56d703~Notification workflow.tmp (application/vnd.jgraph.mxfile)
~drawio~557058:6252ea08-006d-4991-baf7-f107bb56d703~Notification workflow.tmp (application/vnd.jgraph.mxfile)
~drawio~557058:6252ea08-006d-4991-baf7-f107bb56d703~Notification workflow.tmp (application/vnd.jgraph.mxfile)
~drawio~557058:6252ea08-006d-4991-baf7-f107bb56d703~Notification workflow.tmp (application/vnd.jgraph.mxfile)
~drawio~557058:6252ea08-006d-4991-baf7-f107bb56d703~Notification workflow.tmp (application/vnd.jgraph.mxfile)
~drawio~557058:6252ea08-006d-4991-baf7-f107bb56d703~Notification workflow.tmp (application/vnd.jgraph.mxfile)
~drawio~557058:6252ea08-006d-4991-baf7-f107bb56d703~Notification workflow.tmp (application/vnd.jgraph.mxfile)
~drawio~557058:6252ea08-006d-4991-baf7-f107bb56d703~Notification workflow.tmp (application/vnd.jgraph.mxfile)
~drawio~557058:6252ea08-006d-4991-baf7-f107bb56d703~Notification workflow.tmp (application/vnd.jgraph.mxfile)
~drawio~557058:6252ea08-006d-4991-baf7-f107bb56d703~Notification workflow.tmp (application/vnd.jgraph.mxfile)
~drawio~557058:6252ea08-006d-4991-baf7-f107bb56d703~Notification workflow.tmp (application/vnd.jgraph.mxfile)
~drawio~557058:6252ea08-006d-4991-baf7-f107bb56d703~Notification workflow.tmp (application/vnd.jgraph.mxfile)
~drawio~557058:6252ea08-006d-4991-baf7-f107bb56d703~Notification workflow.tmp (application/vnd.jgraph.mxfile)
~drawio~557058:6252ea08-006d-4991-baf7-f107bb56d703~Notification workflow.tmp (application/vnd.jgraph.mxfile)
~drawio~557058:6252ea08-006d-4991-baf7-f107bb56d703~Notification workflow.tmp (application/vnd.jgraph.mxfile)
~drawio~557058:6252ea08-006d-4991-baf7-f107bb56d703~Notification workflow.tmp (application/vnd.jgraph.mxfile)
~drawio~557058:6252ea08-006d-4991-baf7-f107bb56d703~Notification workflow.tmp (application/vnd.jgraph.mxfile)
~drawio~557058:6252ea08-006d-4991-baf7-f107bb56d703~Notification workflow.tmp (application/vnd.jgraph.mxfile)
~drawio~557058:6252ea08-006d-4991-baf7-f107bb56d703~Notification workflow.tmp (application/vnd.jgraph.mxfile)
~drawio~557058:6252ea08-006d-4991-baf7-f107bb56d703~Notification workflow.tmp (application/vnd.jgraph.mxfile)
~drawio~557058:6252ea08-006d-4991-baf7-f107bb56d703~Notification workflow.tmp (application/vnd.jgraph.mxfile)
~drawio~557058:6252ea08-006d-4991-baf7-f107bb56d703~Notification workflow.tmp (application/vnd.jgraph.mxfile)
~drawio~557058:6252ea08-006d-4991-baf7-f107bb56d703~Notification workflow.tmp (application/vnd.jgraph.mxfile)
~drawio~557058:6252ea08-006d-4991-baf7-f107bb56d703~Notification workflow.tmp (application/vnd.jgraph.mxfile)
~drawio~557058:6252ea08-006d-4991-baf7-f107bb56d703~Notification workflow.tmp (application/vnd.jgraph.mxfile)
~drawio~557058:6252ea08-006d-4991-baf7-f107bb56d703~Notification workflow.tmp (application/vnd.jgraph.mxfile)
~drawio~557058:6252ea08-006d-4991-baf7-f107bb56d703~Notification workflow.tmp (application/vnd.jgraph.mxfile)
~drawio~557058:6252ea08-006d-4991-baf7-f107bb56d703~Notification workflow.tmp (application/vnd.jgraph.mxfile)
~drawio~557058:6252ea08-006d-4991-baf7-f107bb56d703~Notification workflow.tmp (application/vnd.jgraph.mxfile)
~drawio~557058:6252ea08-006d-4991-baf7-f107bb56d703~Notification workflow.tmp (application/vnd.jgraph.mxfile)
~drawio~557058:6252ea08-006d-4991-baf7-f107bb56d703~Notification workflow.tmp (application/vnd.jgraph.mxfile)
~drawio~557058:6252ea08-006d-4991-baf7-f107bb56d703~Notification workflow.tmp (application/vnd.jgraph.mxfile)
~drawio~557058:6252ea08-006d-4991-baf7-f107bb56d703~Notification workflow.tmp (application/vnd.jgraph.mxfile)
~drawio~557058:6252ea08-006d-4991-baf7-f107bb56d703~Notification workflow.tmp (application/vnd.jgraph.mxfile)
~drawio~557058:6252ea08-006d-4991-baf7-f107bb56d703~Notification workflow.tmp (application/vnd.jgraph.mxfile)
~drawio~557058:6252ea08-006d-4991-baf7-f107bb56d703~Notification workflow.tmp (application/vnd.jgraph.mxfile)
~drawio~557058:6252ea08-006d-4991-baf7-f107bb56d703~Notification workflow.tmp (application/vnd.jgraph.mxfile)
~drawio~557058:6252ea08-006d-4991-baf7-f107bb56d703~Notification workflow.tmp (application/vnd.jgraph.mxfile)
~drawio~557058:6252ea08-006d-4991-baf7-f107bb56d703~Notification workflow.tmp (application/vnd.jgraph.mxfile)
~drawio~557058:6252ea08-006d-4991-baf7-f107bb56d703~Notification workflow.tmp (application/vnd.jgraph.mxfile)
~drawio~557058:6252ea08-006d-4991-baf7-f107bb56d703~Notification workflow.tmp (application/vnd.jgraph.mxfile)
~drawio~557058:6252ea08-006d-4991-baf7-f107bb56d703~Notification workflow.tmp (application/vnd.jgraph.mxfile)
~drawio~557058:6252ea08-006d-4991-baf7-f107bb56d703~Notification workflow.tmp (application/vnd.jgraph.mxfile)
~drawio~557058:6252ea08-006d-4991-baf7-f107bb56d703~Notification workflow.tmp (application/vnd.jgraph.mxfile)
~drawio~557058:6252ea08-006d-4991-baf7-f107bb56d703~Notification workflow.tmp (application/vnd.jgraph.mxfile)
~drawio~557058:6252ea08-006d-4991-baf7-f107bb56d703~Notification workflow.tmp (application/vnd.jgraph.mxfile)
~drawio~557058:6252ea08-006d-4991-baf7-f107bb56d703~Notification workflow.tmp (application/vnd.jgraph.mxfile)
~drawio~557058:6252ea08-006d-4991-baf7-f107bb56d703~Notification workflow.tmp (application/vnd.jgraph.mxfile)
Notification workflow (application/vnd.jgraph.mxfile)
Notification workflow.png (image/png)
data.csv (text/csv)
截屏2022-09-20 17.43.53.png (image/png)
截屏2022-09-20 17.49.09.png (image/png)
截屏2022-09-20 17.52.49.png (image/png)
截屏2022-09-20 17.53.54.png (image/png)
截屏2022-09-20 17.56.42.png (image/png)
截屏2022-09-21 11.53.33.png (image/png)