A finance officer at a mid sized bank was closing out the month when the numbers refused to line up. Customer accounts held a few cents more, in total, than the bank's own settlement records said they should. She ran the reconciliation again, certain it was her mistake. Same result. She pulled in an engineer, who spent two days going line by line through the transaction logic looking for the missing bug. There was no missing transaction. There was no attacker. There was no single line of broken code anyone could point to. The gap had been forming quietly for months, a fraction of a cent at a time, every single time interest was calculated or a fee was split between accounts.

Nobody had done anything wrong. The mistake had been made much earlier, before either of them had joined the company, in a decision about how money would be represented inside the system in the first place.

The first question I would ask

Before I would agree to use NestJS to build or touch any part of a bank's money handling, the first question I would ask is simple. How are amounts stored and calculated internally, as ordinary numbers, or as something built specifically to represent money exactly.

It sounds like a small detail. It is the single decision that determines whether the numbers can ever quietly drift apart from reality.