SaFi Bank Space : Transaction categorization manager - component description

General description

TCM provides a pre-defined category based on transaction type and code for automatic categorization of a transaction.

Context

TCM replies to categorization requests from THM and provides list of all existing categories to FE (upon a request) via REST API calls. It currently exposes 3 endpoints. Does not consume any service.

The DB for this service contains 4 tables, 1 for the mapping, the others are categories, transaction types and codes. JDBC connection used for communication with DB.
All current endpoints are of type GET which does not do any write operation, therefore idempotent.

Transaction processing

There is declarative transaction handling from service layer down and it’s mandatory on repository layer.

Scalability

TCM should be able to run in multiple instances, as long as the database is the same for each instance.

Approach to security

Authorization library used for securing all 3 REST endpoints.

Domain model

TODO

Current technical debt

It was planned to add endpoints to handle adding new categories, transaction types, codes and mappings to DB. Currently those features are handled by “manual” DB migrations.
https://safibank.atlassian.net/jira/software/c/projects/SM/issues/SM-7766