| ▲ | mrkeen an hour ago | |
At least read to the end > Knowing whether public routes are still in use is still a problem, so you need a minimum level of metrics or logging before you can retire an endpoint. > What are the race conditions? Everywhere. Just fucking everywhere. I ran a workshop for my team (4-5 backenders) with a simple, pared down example with reads and writes within a 'transaction'. I then demonstrated that LINQ breaks its transactionality, and running in READ-COMMITTED (which everyone does) also breaks transactionality. Either of these conditions is enough. My team walked away understanding this. But we left the idea there to die, because you cannot change these things politically. No monolith owner is going to even pretend to demonstrate thread safety. The lines of defence are: * He will assume it's thread safe * He will argue against change "for code consistency" * He will argue that it makes the code simpler and easier to understand * He will introduce a change which he assumes will fix it, but clearly only makes the race condition harder to diagnose * He will argue that it doesn't matter because race conditions are rare anyway. It's all academic anyway - in a monolith you won't get past the first line of defence anyway. | ||