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.
- 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.