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