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 te...
Clasificación: | Libro Electrónico |
---|---|
Autor principal: | |
Formato: | Electrónico eBook |
Idioma: | Inglés |
Publicado: |
New York, NY :
Apress,
[2023]
|
Temas: | |
Acceso en línea: | Texto completo (Requiere registro previo con correo institucional) |
Tabla de Contenidos:
- Intro
- Table of Contents
- About the Author
- About the Technical Reviewer
- Acknowledgments
- Introduction
- Part I: Business Applications
- 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
- Part II: Design Prerequisites
- 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
- Part III: Design
- 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