Skip to content

Arch Forum 2024-03-28

Participants: Backend devs, JD, Victor and Andy

Agenda

  • RabbitMQ Rollout Plan
  • LedgerAccountId/MajorityAccountId/UserId for transactions?
  • Forkless Git

Notes

RabbitMQ Rollout Plan: The proposed plan to roll out RabbitMQ is the following:

Phase 1

  1. Update platform so that message handlers can receive events on both ASB and RabbitMQ. Update platform so that message can be sent either over ASB or RabbitMQ, with a config switch. No support for Scheduling or Sessions (these have separate config settings).
  2. Wait for all areas have had their renovates merged and deployed. Note that the RabbitMQ module also needs to be added.
  3. Toggle one (small) area to use RabbitMQ to send messages (only non-session/non-scheduled)
  4. Toggle more areas to use RabbitMQ until all are switched over

Phase 2

  1. Implement sessions on RabbitMQ in platform
  2. Follow same rollout pattern

Phase 3

  1. Decide how and implement Scheduling

What is not mentioned here is that RabbitMQ will be a requirement to run services locally. To make this easier, there's a docker compose with both SQL Server and RabbitMQ in Bank-cicd: docker-compose.yml

LedgerAccountId/MajorityAccountId/UserId for transactions:
With Wallet/Account v2 we will start to allow our users to have multiple accounts. This means it's important to understand how the LedgerAccountId/MajorityAccountId/UserId fits together. Shakib explained the domain model, and posed the question if other areas should be required to send in the MajorityAccountId to initiate credits/debits/transfers. This is an option that is possible with the new changes, but not part of the to actual Account2.0 work.

A rather long discussion followed.
- Who should decide if its ok to use a secondary account for a remittance or call?
- Should areas know about Ledger and Majority Accounts?
- There was in the beginning of Mpay a "feature" that allowed a user to MPay him/herself..

Forkless Git:
Now working without forks have been tested, and it should be ready for everyone to use.
- Next week, anyone should try to work without forks.
- The new consultant developers (Lars & Rasmus) should not use forks.
- The ForkAllRepos script has been rewritten to only clone all repos. https://dev.azure.com/MAJORITY/Bank/_git/bank-cicd?path=/CloneRepos/Clone-all-repos.py
- It seems like the git posh scripts are not needed anymore. Maybe there's still a use for the complete-fork script. If so, we should raise the issue, and it can be rewritten for the new fork-less flow easily.