Persistence best practices for Java applications effective strategies for distributed cloud-native applications and data-driven modernization

The definitive guide for designing and delivering reliable and high-performing persistence layers using Java in the cloud-native age Purchase of the print or Kindle book includes a free PDF eBook Key Features Uncover database patterns for designing readable and maintainable architectures and Java ap...

Descripción completa

Detalles Bibliográficos
Otros Autores: Santana, Otàvio, author (author), Varela, Karina, author
Formato: Libro electrónico
Idioma:Inglés
Publicado: Birmingham, England : Packt Publishing Ltd [2023]
Edición:1st ed
Materias:
Ver en Biblioteca Universitat Ramon Llull:https://discovery.url.edu/permalink/34CSUC_URL/1im36ta/alma991009764839006719
Tabla de Contenidos:
  • Cover
  • Title Page
  • Copyright and Credit
  • Dedicated
  • Contributors
  • Table of Contents
  • Preface
  • Part 1: Persistence in Cloud Computing - Storing and Managing Data in Modern Software Architecture
  • Chapter 1: The History of Data Storage - From the Caves to the Cloud
  • Why do databases exist?
  • The challenges of handling data
  • Characteristics of Java persistence frameworks
  • The cloud's effect on stateful solutions
  • Exploring the trade-offs of distributed database systems - a look into the CAP theorem and beyond
  • Summary
  • Chapter 2: Exploring the Multiple Database Flavors
  • A look back at relational databases
  • A deep dive into non-relational databases (NoSQL)
  • NoSQL database types - key-value
  • NoSQL database types - document
  • NoSQL database types - wide-column/column-family
  • NoSQL database types - graph
  • NewSQL databases - trying to get the best out of both worlds
  • Summary
  • Chapter 3: ChaExploring Architectural Strategies and Cloud Usage
  • The cloud's influence on software architecture design
  • Design patterns - the essential building blocks for software architects
  • Monolithic architecture
  • Microservices architecture
  • Common pitfalls of microservices adoption
  • Cloud deployment strategies that favor modern stateful solutions
  • Why the hybrid and multi-cloud models matter
  • Distributed systems and their impact on data systems
  • Example - architecting a food delivery solution
  • The basic scenario
  • The challenges of integrating services around a central piece of data
  • Summary
  • Chapter 4: Design Patterns for Data Management in Cloud-Native Applications
  • Technical requirements
  • Design patterns applied to the Java persistence layer
  • Unstructured code
  • The data mapper pattern
  • The DAO pattern
  • Repository pattern boosted by DDD
  • The active record pattern.
  • Navigating the Java mapping landscape - evaluating framework trade-offs
  • Data transfer between the view and underlying layers
  • Summary
  • Part 2: Jakarta EE, MicroProfile, Modern Persistence Technologies, and Their Trade-Offs
  • Chapter 5: Jakarta EE and JPA - State of Affairs
  • Technical requirements
  • Jakarta EE overview
  • Framework unveiled - reflection versus reflectionless solutions
  • JPA state of affairs
  • JPA and database mapping patterns
  • The power of JPA with Quarkus and Panache cloud-native runtimes
  • Setting up the new service
  • Persistent entities and database operations
  • Exposing REST endpoints for data manipulation
  • Even faster development speed - automatic endpoint generation
  • General JPA-related performance considerations
  • Summary
  • Chapter 6: NoSQL in Java Demystified - One API to Rule Them All
  • Technical requirements
  • Understanding NoSQL database trade-offs
  • Consuming NoSQL databases with JNoSQL
  • Key-value databases
  • Column databases
  • Document databases
  • Graph databases
  • Summary
  • Chapter 7: The Missing Guide for jOOQ Adoption
  • Technical requirements
  • Data-driven and object-oriented programming in Java
  • What is jOOQ?
  • Using jOOQ with Jakarta/MicroProfile
  • Summary
  • Chapter 8: Ultra-Fast In-Memory Persistence with Eclipse Store
  • Technical requirements
  • Object-relational impedance mismatch explained
  • In-memory persistence storage - Eclipse Store
  • The basics of how to store and manage data in memory
  • Using in-memory data storage with Jakarta EE and MicroProfile
  • Summary
  • Part 3: Architectural Perspective over Persistence
  • Chapter 9: Persistence Practices - Exploring Polyglot Persistence
  • Technical requirements
  • The trade-offs of polyglot persistence
  • Understanding DDD and Jakarta
  • Jakarta Data
  • Summary.
  • Chapter 10: Architecting Distributed Systems - Challenges and Anti-Patterns
  • Data integration scales and distributed transactions
  • The dual-write anti-pattern
  • Microservices and shared databases
  • Eventual consistency problems
  • Summary
  • Chapter 11: Modernization Strategies and Data Integration
  • Application modernization strategies
  • Avoiding data storage-related anti-patterns and bad practices
  • Introduction to CDC pattern
  • Adopting cloud technologies and cloud services
  • Summary
  • Chapter 12: Final Considerations
  • The power of tests and leading with data-domain tests
  • Underestimating the importance of documentation
  • Architecture without architects
  • Summary
  • Further reading
  • Index
  • Other Books You May Enjoy
  • About Packt.