Book Image

Persistence Best Practices for Java Applications

By : Otavio Santana, Karina Varela
Book Image

Persistence Best Practices for Java Applications

By: Otavio Santana, Karina Varela

Overview of this book

Having a solid software architecture breathes life into tech solutions. In the early stages of an application’s development, critical decisions need to be made, such as whether to go for microservices, a monolithic architecture, the event-driven approach, or containerization. In Java contexts, frameworks and runtimes also need to be defi ned. But one aspect is often overlooked – the persistence layer – which plays a vital role similar to that of data stores in modern cloud-native solutions. To optimize applications and data stores, a holistic understanding of best practices, technologies, and existing approaches is crucial. This book presents well-established patterns and standards that can be used in Java solutions, with valuable insights into the pros and cons of trending technologies and frameworks used in cloud-native microservices, alongside good Java coding practices. As you progress, you’ll confront the challenges of cloud adoption head-on, particularly those tied to the growing need for cost reduction through stack modernization. Within these pages, you’ll discover application modernization strategies and learn how enterprise data integration patterns and event-driven architectures enable smooth modernization processes with low-to-zero impact on the existing legacy stack.
Table of Contents (18 chapters)
1
Part 1: Persistence in Cloud Computing – Storing and Managing Data in Modern Software Architecture
6
Part 2: Jakarta EE, MicroProfile, Modern Persistence Technologies, and Their Trade-Offs
9
Chapter 7: The Missing Guide for jOOQ Adoption
11
Part 3: Architectural Perspective over Persistence

The dual-write anti-pattern

Dual-write is a pattern or approach in software development where data is simultaneously written to two or more separate systems or databases in real time. Dual-write aims to ensure data consistency and synchronization across multiple systems that serve different purposes or require additional data. The following diagram shows this operation, where a single web app writes multiple times to a database, a cache, and a second application.

Figure 10.3: Dual-write operation

Figure 10.3: Dual-write operation

While dual-write may seem convenient for data integration and synchronization, it is generally considered an anti-pattern. But what happens if one update succeeds and the other fails? Here are a few reasons why dual-write can be problematic:

  • Complexity and coupling: Implementing dual-write introduces complexity and tight coupling between different systems. It increases the maintenance overhead and makes the system more fragile and prone to errors. Any...