Why is Propagation.REQUIRED the default in Spring? NESTED seems to be a much better default.
A NESTED transactional unit is truly transactional.
A REQUIRED transactional unit can leave data in a weird state, depending on whether it is called top level or from a nested scope.
@simas_ch I really don't see the utility of this behaviour. The only really valid code is to just never catch (and handle) the exception, to always propagate it until it reaches the outer most transactional code.
But then, why even make nested code transactional at all?
@vlad_mihalcea @simas_ch You probably meant ExecutorService and REQUIRES_NEW. That's reasonable in edge cases, but something completely different. In my example, tx2() should see tx1()'s outcome, but not affect it.
1/ There had been a lot of talk about "10x engineers" on Twitter, in the recent past. Some voices went as far as hinting at "10x engineers" being bad for teams / businesses. Those people obviously go way too far. I think the discussion should be much more nuanced. Here's my take
2/ Most people are average by definition. Most people, however, are really good at *something*. And there are some people who are plain simply excellent at *something*. Their excellency may go as far as being 10x as productive as the average. Sounds great! So what's the problem?
3/ Working with someone 10x as good as ourselves can be equally inspiring as it can be frustrating. They're great and make the work they do look much more interesting. Quite possibly, we can learn a lot from them as well. But they're also much much better, and we might never be