My Account Log in

1 option

Persistence best practices for Java applications : effective strategies for distributed cloud-native applications and data-driven modernization / Otàvio Santana and Karina Varela.

O'Reilly Online Learning: Academic/Public Library Edition Available online

View online
Format:
Book
Author/Creator:
Santana, Otàvio, author.
Varela, Karina, author.
Language:
English
Subjects (All):
Java (Computer program language).
Web servers.
Physical Description:
1 online resource (202 pages)
Edition:
1st ed.
Place of Publication:
Birmingham, England : Packt Publishing Ltd., [2023]
Biography/History:
Santana Otavio: Otavio is a passionate architect and software engineer focused on cloud and Java technologies. He has deep expertise in polyglot persistence and high-performance applications in finance, social media, and e-commerce. As a global speaker, he has presented at the most significant international conferences, such as JavaOne, TDC, and Devoxx. He volunteers and helps organize several Java User Groups and meetups around the globe. Otavio is recognized for his Open Source contributions and has received many awards, including all JCP Awards categories and the Duke's Choice Award, to name a few. Otavio is also a distinguished member of the Java Champions and Oracle ACE programs. Otavio loves history, economy, traveling, programming, and real-world languages. He speaks Portuguese, English, Spanish, Italian, and French and is fluent in dad jokes. Varela Karina: Karina Varela has been working with enterprise technologies for over ten years, focusing on cloud solutions, Java technologies, and the open-source culture. Her solid knowledge is built on practical experience in development, architecture, delivery, and troubleshooting production applications and products. Having worked at Red Hat, the biggest open-source company in the industry, not only does she bring a vast understanding of the open-source model and the open communities - but she is also largely involved in the delivery of architecture and delivery of critical-mission software in multiple sectors around the globe and was awarded the Red Hat champion recognition. Karina is well recognized amongst the Java community for articles and blogs, books, talks at international tech conferences, open-source contributions, and active nurturing and management of communities like SOUJava.
Summary:
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 applications Master various techniques to overcome application and architecture persistence challenges Discover painless application modernization with change-data-capture powered by cloud-native technologies Book Description 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. What you will learn Gain insights into data integration in Java services and the inner workings of frameworks Apply data design patterns to create a more readable and maintainable design system Understand the impact of design patterns on program performance Explore the role of cloud-native technologies in modern application persistence Optimize database schema designs and leverage indexing strategies for improved performance Implement proven strategies to handle data storage, retrieval, and management efficiently Who this book is for If you're a developer, engineer, or software architect working in the field of software development, particularly with a focus on Java solutions, this book is for you.
Contents:
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
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
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
Part 2: Jakarta EE, MicroProfile, Modern Persistence Technologies, and Their Trade-Offs
Chapter 5: Jakarta EE and JPA - State of Affairs
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
Chapter 6: NoSQL in Java Demystified - One API to Rule Them All
Understanding NoSQL database trade-offs
Consuming NoSQL databases with JNoSQL
Key-value databases
Column databases
Document databases
Graph databases
Chapter 7: The Missing Guide for jOOQ Adoption
Data-driven and object-oriented programming in Java
What is jOOQ?
Using jOOQ with Jakarta/MicroProfile
Chapter 8: Ultra-Fast In-Memory Persistence with Eclipse Store
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
Part 3: Architectural Perspective over Persistence
Chapter 9: Persistence Practices - Exploring Polyglot Persistence
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
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
Chapter 12: Final Considerations
The power of tests and leading with data-domain tests
Underestimating the importance of documentation
Architecture without architects
Further reading
Index
Other Books You May Enjoy
About Packt.
Notes:
Includes index.
Description based on print version record.
ISBN:
9781837637669
1837637660
OCLC:
1392044290

The Penn Libraries is committed to describing library materials using current, accurate, and responsible language. If you discover outdated or inaccurate language, please fill out this feedback form to report it and suggest alternative language.

Find

Home Release notes

My Account

Shelf Request an item Bookmarks Fines and fees Settings

Guides

Using the Find catalog Using Articles+ Using your account