Transactions

Mastering Spring & MSA Transactions – Part 10: Fine-Tuning Your Transactions: readOnly, timeout, and Other Options

In the previous articles, we explored core transaction concepts like Propagation (when and how transactions start or join), Isolation (how to avoid concurrency anomalies), and rollback rules (deciding which exceptions trigger rollbacks). Now, it’s time to look at other Spring transaction attributes that can dramatically improve performance and stability: Let’s see how to configure these…

Mastering Spring & MSA Transactions – Part 9: Which Exceptions Should Roll Back Your Transactions?: Fine-Tuning Spring’s Rollback Rules

In the previous articles, we explored how to start or join transactions (propagation) and how to handle concurrency (isolation). However, even if you have those aspects covered, you still need to decide what happens when exceptions occur: What if you need to roll back on a checked exception like IOException? Or what if you want…

Mastering Spring & MSA Transactions – Part 8: Beyond Propagation: Mastering Transaction Isolation for Safer Concurrency

In the previous article, we explored the various propagation modes (REQUIRES_NEW, NOT_SUPPORTED, etc.), showing how different pieces of your application can start new transactions or share existing ones. However, even if you’ve got propagation nailed down, that alone won’t guarantee your data remains consistent when multiple users or services hit the database at the same…

Mastering Spring & MSA Transactions – Part 7: Unlocking Transaction Propagation in Spring: When to Combine, When to Separate

In our previous discussions, we discovered how @Transactional can automatically handle commits and rollbacks in Spring. Yet, real-world scenarios raise questions like: That’s exactly where transaction propagation steps in. This article explores the different propagation modes and how each fits common situations in everyday development. 1) What Is Transaction Propagation? Propagation in Spring determines how…

Mastering Spring & MSA Transactions – Part 6: Where Exactly to Put @Transactional: Class-Level or Method-Level?

You’ve seen how @Transactional allows Spring to automatically manage commits and rollbacks, freeing you from having to code transaction boundaries by hand. But once you start using it, a question arises: Should you declare @Transactional at the class level or the method level? This article dives into the pros, cons, and potential pitfalls of each…

Mastering Spring & MSA Transactions – Part 4: The Rise of Declarative Transactions: @Transactional, AOP, and Spring Boot Autoconfiguration

In the previous article (Part 3), we traced how Java’s transaction management evolved from JDBC → EJB → Spring (programmatic style): Here in Part 4, we examine Spring’s further breakthrough: declarative transactions—a way to simply annotate a method with @Transactional and let the framework handle all transaction details, without the overhead of an application server….

Mastering Spring & MSA Transactions – Part 3: A Brief History of Java Transactions

Complex, multi-step processes often risk data inconsistencies if any intermediate step fails. We want everything to succeed together—or revert entirely if something goes wrong. Manually ensuring that in code is tedious and error-prone. Java has evolved several approaches to tackle this challenge, starting with direct JDBC transaction handling, moving on to EJB (2.x and later…

Mastering Spring & MSA Transactions – Part 2: What Exactly Is a Transaction? The Shield of Data Integrity

1) Realizing Things Are More Than One Step Previously, we saw how something as simple as a bank transfer or an online checkout is actually multiple steps underneath. If any one of those steps fails, you risk inconsistent or partially updated data. So how do real systems prevent this “half-finished” chaos? In many cases, the answer is a transaction. 2)…

Mastering Spring & MSA Transactions – Part 1: Data Integrity in Backend Systems: Why Partial Updates Cause Disasters

1) When Data Fails, Everything Fails We live in a world where data underpins almost every action, especially in backend systems. From storing photos and contacts on a phone to running an e-commerce website that tracks orders, data integrity is the glue holding our digital lives and businesses together. But what happens when this data…

End of content

End of content