Arch Forum 2024-02-29¶
Participants: Backend devs, Zak, Magnus, Victor
Agenda¶
- Performance & Hosting costs
- Azure Devops Organization
- Countries lists
Notes¶
CPU Usage & Hosting costs Victor had prepared some slides about performance / resources usage and our hosting costs in production. Slides [here]
(https://docs.google.com/presentation/d/1aBZf51EUHAxiVMalSxt6UUhOlThWeOIETUl767aLhME/edit?usp=sharing). The key takeaway is that our DB costs are much higher than everything else (currently at 87k SEK/month vs 20-30k/month for Service Bus & K8s VMs). This means that while we should not waste resources, we also do not need to focus on c# performance (i.e. Automapper vs Mapperly).
Azure Devops Organization: Several different cleanup/reorganization ideas were discussed:
1. Rename bank-infrastructure to bank-platform: Everyone agrees that infrastructure to platform is a good idea. However, it also raised the question of why we have a bank- prefix.
2. Move bank-infrastructure to Bank project: No discussion, seems logical. However, should everything go into Bank?
3. bank-backend: Created the most discussions. It currently only has backend tools (i.e. resend dead letters). We could conclude that the name is bad for this purpose, a rename would be good, for example to bank-tools or (given the discussion around bank- prefix) to tools. We could also conclude that this repo should be easy to commit to, and does not need fork policy, a PR review requirement or a PR pipeline (since tools are used to "hack around the system"). Other kinds of ongoing maintenance systems, for example code to publish the monthly statements, should be in other repos and be automated. It would also be a good idea to clean up old unused code in there, as long as we don't remove something useful.
Countries lists: Magnus brought up the case of list of countries. There's a need for country lists in multiple places in backend, but they are all implemented differently. After discussion, we concluded that there should be a master list of countries and relevant properties in Platform code, then each area that needs a list can use that, with additional filtering or enrichment done by each area as needed.