⚠️ We removed @Transactional… nothing broke. That was the problem. It looked like a small cleanup. We had a method doing multiple DB operations. Someone asked: 👉 "Do we really need @Transactional here?" At first, it felt like a safe change. So we removed it. Everything worked fine in testing. No errors. No failures. But in production… things started getting weird. * Orders were created… without payments * Some updates were saved… others silently failed * Data looked fine until users started noticing No crashes. No alerts. Just inconsistent data. That is when it clicked. Without @Transactional, each DB call commits independently. So if something fails in between…there is no rollback. You don’t get failure. You get partial success Transactions don’t protect success. They protect you from partial failure. Now Iam more careful. Not every method needs it. But removing it without understanding the boundary…is a silent risk. And in production… partial failure is the default. #SpringBoot #Java #SpringFramework #Microservices #100DaysOfCode
Very well explained. This shows how small changes can create big issues in production.
Great share
Great Insight
Meanwhile the guy who approved the PR suddenly went on "unplanned leaves" 😁
Curious to know do you rely on @Transactional everywhere or define boundaries very selectively?