توضیحاتی در مورد کتاب Building Modern Business Applications: Reactive Cloud Architecture for Java, Spring, and PostgreSQL
نام کتاب : Building Modern Business Applications: Reactive Cloud Architecture for Java, Spring, and PostgreSQL
ویرایش : 1 ed.
عنوان ترجمه شده به فارسی : ساخت برنامه های تجاری مدرن: معماری ابری واکنشی برای جاوا، اسپرینگ و PostgreSQL
سری :
نویسندگان : Peter Royal
ناشر : Apress
سال نشر : 2022
تعداد صفحات : [185]
ISBN (شابک) : 9781484289914 , 9781484289921
زبان کتاب : English
فرمت کتاب : pdf
حجم کتاب : 3 Mb
بعد از تکمیل فرایند پرداخت لینک دانلود کتاب ارائه خواهد شد. درصورت ثبت نام و ورود به حساب کاربری خود قادر خواهید بود لیست کتاب های خریداری شده را مشاهده فرمایید.
فهرست مطالب :
Table of Contents
About the Author
About the Technical Reviewer
Acknowledgments
Introduction
Chapter 1: What Is a Business Application?
Business Software
Domain Specific
How It Is Used
Measuring Importance
“Modern”
Summary
Chapter 2: The Status Quo (and How It Came to Be)
Business Application Architectures
The Status Quo
Green Screen
Rich Client
Web Applications
The Rise of Consumer Applications
Concurrent Practices
Agile
Test-Driven Development
Continuous Integration and Delivery
Observability
Summary
Chapter 3: What Is a Reactive System?
What Is Reactive?
Reactive Manifesto
Responsive
Resilient
Elastic
Message Driven
Composing a Reactive System
Summary
Chapter 4: Why Build Business Applications As Reactive Systems?
Business Expectations
Developer Expectations
Property Alignment
Responsive
Resilient
Elastic
Message Driven
Summary
Chapter 5: What Is a Business Rule?
Thinking About Business Rules
Categorizations
Data at Rest
Side Effects
Derivable Data
Summary
Chapter 6: Managing Time
Answering “What Happened?”
Tracking Changes
Why Did That Happen?
Events
Commands
Understanding Time
Serialization of Time
Eventual Consistency
Bitemporality
Business Rule Changes
Summary
Chapter 7: Constraints and Principles
Constraints
From REST to a Graph
Falcor
GraphQL
Why GraphQL
Being Real-Time
Principles
Never Forget
Message Driven
Read/Write Separation
Partial Availability
Design Flexibility
Modularity
Testability
Amenability to Change
Summary
Chapter 8: High-Level Data Flow
Event Sourcing and CQRS
Thinking in GraphQL Schemas
Scalars and Enums
Objects
Lists
Input Objects
Interfaces and Unions
Queries and Subscriptions
Mutations
Combining GraphQL + ES + CQRS
Summary
Chapter 9: Command Processor
What It Is, and Is Not
Requirements
Composing the Core Loop
Handling Failures
Infrastructure
Application
Enforcing Business Rules
How to Test
Testing the Command Processor
Testing Your Code
Summary
Chapter 10: Command Generator
Interaction with GraphQL
From Input Arguments into a Command
Appending to the Command Log
Returning the Mutation Result
Commands and Other Required Data
Handling Failures
Optimistic Locking
Timeouts
Testing the Command Generator
Command Submission
Command Creation
Summary
Chapter 11: Event Materializer
Defining the View Model
Event Materializer Behavior
Transactions
Consistency
Multiple Sources
Evolving the View Model
Communicating Changes to Others
GraphQL Subscriptions
Other Side Effects
Managing Failure
Testing
Summary
Chapter 12: Testing, Monitoring, and Observability
Key Components
Command Processor
Command Generator
Event Materializer
Composed Data Flow
Testing the Composed System
Introducing Property-Based Testing
Using Property-Based Testing
Using Example Tests
Observability
Monitoring Production Systems
Practice Using Tools
Summary
Chapter 13: Required Technologies
Design Review
Constraints and Principles Recap
GraphQL
Real-Time Updates
Never Forget
Message Driven
Read/Write Separation
Partial Availability
Design Flexibility
Modularity
Testability
Amenability to Change
Required Technologies
Append-Only Log
Pub/Sub Messaging
Distributed Locking
Database
Summary
Chapter 14: Building with Modern Spring, Java, and PostgreSQL
Required Technologies via PostgreSQL
Advisory Locks
LISTEN and NOTIFY
NOTIFY
LISTEN
Schemas
Append-Only Log
Java and the JVM
GraphQL-Java
Spring Boot
Project Reactor
R2DBC
jqwik
Putting It All Together
Summary
Chapter 15: Expansion Points and Beyond
Design Flexibility and Amenability to Change
Multiple Command Processors
Command Processor State Caching
Parallel Event Materialization
Command and Event Logs As GraphQL Subscriptions
Using GraphQL for Inter-Process Communication
Federated GraphQL
Outsourcing Distributed System Problems
Bitemporal Materialized Views
Conclusion
Index