BUILDING MODERN BUSINESS APPLICATIONS : reactive cloud architecture for java, spring, and... postgresql
معرفی کتاب «BUILDING MODERN BUSINESS APPLICATIONS : reactive cloud architecture for java, spring, and... postgresql» نوشتهٔ Peter Royal، منتشرشده توسط نشر Apress Apress در سال 2023. این کتاب در 9 صفحه، فرمت pdf، زبان انگلیسی ارائه شده است. «BUILDING MODERN BUSINESS APPLICATIONS : reactive cloud architecture for java, spring, and... postgresql» در دستهٔ برنامهنویسی قرار دارد.
Discover a new way of thinking about business applications in light of the massive industry shift toward cloud computing and reactive programming technologies. This book synthesizes technologies and techniques such as event sourcing, command query responsibility segregation (CQRS), property-based testing, and GraphQL into a cohesive guide for modern business applications that benefit every developer. The book begins with a look at the fundamentals of modern business applications. These fundamentals include business rules and the managing of data over time. The benefits of reactive techniques are explained, including how they are fundamentally aligned with what application developers strive to achieve in their work. Author Peter Royal equips you with sound guidance to follow as you evolve your existing systems, as well as examples of how to build those systems using modern techniques in Spring, Java, and PostgreSQL. What You Will Learn Architect business applications for cloud-based environments Design sustainable business applications Integrate GraphQL best practices into business applications Use property-based testing to exhaustively test possible system states Think about business applications in terms of message flows Relate the benefits of reactive systems to business goals Model time appropriately for business requirements Who This Book Is For Practicing software developers who are building business applications, developers who are being asked to deploy into cloud environments that are more volatile than statically provisioned data centers, developers who want to increase the reliability of their systems and are struggling to find the right paradigms and architectures to achieve their goals, developers who see and use capabilities in software in other areas of their lives and want to bring those capabilities into their own work, and developers with experience designing other types of software who want to learn how to design business applications Table of Contents 5 About the Author 12 About the Technical Reviewer 13 Acknowledgments 14 Introduction 15 Chapter 1: What Is a Business Application? 17 Business Software 17 Domain Specific 18 How It Is Used 19 Measuring Importance 20 “Modern” 21 Summary 21 Chapter 2: The Status Quo (and How It Came to Be) 23 Business Application Architectures 23 The Status Quo 23 Green Screen 25 Rich Client 25 Web Applications 26 The Rise of Consumer Applications 28 Concurrent Practices 30 Agile 30 Test-Driven Development 31 Continuous Integration and Delivery 31 Observability 32 Summary 33 Chapter 3: What Is a Reactive System? 34 What Is Reactive? 34 Reactive Manifesto 35 Responsive 36 Resilient 37 Elastic 37 Message Driven 38 Composing a Reactive System 39 Summary 40 Chapter 4: Why Build Business Applications As Reactive Systems? 41 Business Expectations 41 Developer Expectations 42 Property Alignment 43 Responsive 44 Resilient 44 Elastic 45 Message Driven 46 Summary 47 Chapter 5: What Is a Business Rule? 48 Thinking About Business Rules 48 Categorizations 49 Data at Rest 49 Side Effects 51 Derivable Data 53 Summary 55 Chapter 6: Managing Time 56 Answering “What Happened?” 56 Tracking Changes 57 Why Did That Happen? 58 Events 59 Commands 60 Understanding Time 60 Serialization of Time 61 Eventual Consistency 62 Bitemporality 62 Business Rule Changes 63 Summary 64 Chapter 7: Constraints and Principles 65 Constraints 65 From REST to a Graph 65 Falcor 66 GraphQL 66 Why GraphQL 67 Being Real-Time 68 Principles 68 Never Forget 69 Message Driven 69 Read/Write Separation 70 Partial Availability 71 Design Flexibility 72 Modularity 72 Testability 73 Amenability to Change 74 Summary 74 Chapter 8: High-Level Data Flow 76 Event Sourcing and CQRS 76 Thinking in GraphQL Schemas 77 Scalars and Enums 78 Objects 78 Lists 79 Input Objects 79 Interfaces and Unions 80 Queries and Subscriptions 80 Mutations 81 Combining GraphQL + ES + CQRS 83 Summary 84 Chapter 9: Command Processor 85 What It Is, and Is Not 85 Requirements 86 Composing the Core Loop 87 Handling Failures 89 Infrastructure 89 Application 90 Enforcing Business Rules 92 How to Test 93 Testing the Command Processor 93 Testing Your Code 93 Summary 94 Chapter 10: Command Generator 95 Interaction with GraphQL 95 From Input Arguments into a Command 95 Appending to the Command Log 98 Returning the Mutation Result 99 Commands and Other Required Data 103 Handling Failures 103 Optimistic Locking 104 Timeouts 105 Testing the Command Generator 106 Command Submission 106 Command Creation 107 Summary 108 Chapter 11: Event Materializer 109 Defining the View Model 109 Event Materializer Behavior 110 Transactions 110 Consistency 111 Multiple Sources 112 Evolving the View Model 113 Communicating Changes to Others 114 GraphQL Subscriptions 115 Other Side Effects 117 Managing Failure 118 Testing 119 Summary 120 Chapter 12: Testing, Monitoring, and Observability 121 Key Components 121 Command Processor 121 Command Generator 122 Event Materializer 122 Composed Data Flow 123 Testing the Composed System 123 Introducing Property-Based Testing 125 Using Property-Based Testing 127 Using Example Tests 129 Observability 130 Monitoring Production Systems 132 Practice Using Tools 134 Summary 135 Chapter 13: Required Technologies 136 Design Review 136 Constraints and Principles Recap 138 GraphQL 138 Real-Time Updates 139 Never Forget 139 Message Driven 140 Read/Write Separation 140 Partial Availability 141 Design Flexibility 141 Modularity 141 Testability 142 Amenability to Change 142 Required Technologies 143 Append-Only Log 143 Pub/Sub Messaging 144 Distributed Locking 145 Database 145 Summary 146 Chapter 14: Building with Modern Spring, Java, and PostgreSQL 147 Required Technologies via PostgreSQL 147 Advisory Locks 148 LISTEN and NOTIFY 150 NOTIFY 150 LISTEN 151 Schemas 152 Append-Only Log 153 Java and the JVM 153 GraphQL-Java 154 Spring Boot 155 Project Reactor 156 R2DBC 157 jqwik 158 Putting It All Together 159 Summary 162 Chapter 15: Expansion Points and Beyond 163 Design Flexibility and Amenability to Change 163 Multiple Command Processors 165 Command Processor State Caching 166 Parallel Event Materialization 168 Command and Event Logs As GraphQL Subscriptions 170 Using GraphQL for Inter-Process Communication 172 Federated GraphQL 173 Outsourcing Distributed System Problems 175 Bitemporal Materialized Views 177 Conclusion 178 Index 180
دانلود کتاب BUILDING MODERN BUSINESS APPLICATIONS : reactive cloud architecture for java, spring, and... postgresql