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...
Otros Autores: | , |
---|---|
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.