SaFi Bank Space : Response message manager - component description

General description

Describe, what is general intention of the component. What is its aim.

Context

List of the component communication with outside world. What commands/events/snapshots it sends, what messages it listens to, what rest services it offers, what services it consumes. And general description, why this connection is used. Don’t forget DB. (smile) For each communication channel describe (current situation):

  • Idempotency & retryability - whether is channel idempotent and in case of failure it retries if it makes sense.

  • Communication patterns - is it Synchronous? Asynchronous? Callback? Fire & forget?

  • Communication protocols - in our case Kafka/Rest over http/JDBC

Transaction processing

Describe, how TX (software dev meaning) are implemented ( eg. controller or service level, declarative, repositories TX.Mandatory? etc)

Scalability

Whether there are some limitations to number of instances running. Relation to Kafka consumer groups.

Approach to security

Most likely mention using of authorisation library for REST and rely on Kafka as always authorised calls…

Domain model

Please ideally use Draw.io and make the model “high level”. This means to put there just core entities. On top of that, describe their purpose by text below diagram itself.

Current technical debt

What in terms of code improvements and NFRs is currently missing and could or should be improved. Feel free to put Jira issues here if applicable.