Software architecture by example using C# and .NET

Design system solutions using modern architectural patterns and practices. This book discusses methods to keep a system responsive, even when it is being constantly updated, extending a system's functionality without changing the core code, methods of maintaining data history, and designing a d...

Descripción completa

Detalles Bibliográficos
Otros Autores: Michaels, Paul, author (author)
Formato: Libro electrónico
Idioma:Inglés
Publicado: New York, NY : Apress [2022]
Materias:
Ver en Biblioteca Universitat Ramon Llull:https://discovery.url.edu/permalink/34CSUC_URL/1im36ta/alma991009661634206719
Tabla de Contenidos:
  • Intro
  • Table of Contents
  • About the Author
  • About the Technical Reviewer
  • Acknowledgments
  • Introduction
  • Foreword
  • Chapter 1: The Ticket Sales Problem
  • Background
  • Requirements
  • Options
  • Manual Process
  • Existing System
  • Existing System Considerations
  • Minimum Viable Product
  • Target Architecture
  • How to Deal with High Throughput
  • Widening the Funnel
  • Server
  • Service
  • Multiple Funnels
  • Message Queues
  • Message Brokers
  • Separation of Concerns
  • Target Architecture Diagram
  • Proxy
  • A Note on Cloud Vendors
  • Why Cloud?
  • Examples
  • External APIs
  • Getting Ticket Availability
  • Ordering a Ticket
  • Adding a Message to a Queue
  • Getting a Response from the Queue
  • Summary
  • Chapter 2: The Cash Desk Problem
  • Background
  • Requirements
  • Options
  • Manual Process
  • Target Architecture
  • Audit
  • Event Sourcing
  • Immutable Events
  • How to Change Immutable Events
  • Projections and Snapshots
  • Aggregates
  • CQRS
  • Target Architecture Diagram
  • Examples
  • Persisting Events to Memory
  • Persisting Events to Disk
  • Save
  • Load
  • Writing to Files
  • Summary
  • Chapter 3: The Travel Agent Problem
  • Background
  • Requirements
  • Options
  • Manual Process
  • Transactions
  • ACID
  • Atomic
  • Consistent
  • Isolation
  • Durable
  • Distributed Transactions
  • Possible Scenarios
  • The hospital has no available appointments on that day
  • The space flight provider's system crashes after receiving a prepare message but before responding
  • The hotel's system crashes after receiving a commit message and committing the transaction but before acknowledging
  • The transaction coordinator crashes after sending all the prepare messages but before receiving any confirmations
  • Distributed Transaction with Timeout
  • Book and Cancel
  • Hold a Booking
  • Advanced Purchase
  • Business Decision.
  • Target Architecture
  • Stateful Service
  • Distributed Service
  • Target Architecture Diagram
  • Examples
  • Project Structure
  • Service Bus Configuration
  • Coordinator
  • Summary
  • Chapter 4: The Social Media Problem
  • Background
  • Requirements
  • Options
  • Manual Process
  • CQRS
  • Benefits
  • Drawbacks
  • Consistency Models
  • Strong or Strict Consistency
  • Sequential or Causal Consistency
  • Weak or Eventual Consistency
  • Target Architecture
  • Examples
  • Schema Creation
  • Updating the Database
  • Update a Local Version of the Database Directly
  • Call a Web Service to Update the Database
  • Checking the Data
  • Web Service
  • Accessing MongoDB
  • The Client
  • Process Data Service
  • Summary
  • Chapter 5: The Admin Application Problem
  • Background
  • Requirements
  • Options
  • Manual Process
  • SOLID
  • Single Responsibility
  • Testability
  • Code Churn
  • Software Resilience
  • A Better Way
  • Open-Closed
  • Inheritance
  • Polymorphism
  • Liskov Substitution
  • Interface Segregation Principle
  • Dependency Inversion Principle
  • Inversion of Control
  • Methods of Extending Software
  • Hooks
  • Messages
  • Mediator
  • Injection
  • Security
  • Target Architecture
  • Examples
  • Basic Functionality
  • Extensibility
  • Custom Functionality
  • Summary
  • Chapter 6: The Travel Rep Problem
  • Background
  • Requirements
  • Options
  • Manual Process
  • Caching
  • Sidecar Pattern
  • Ambassador Pattern
  • Microservices and Containers
  • Target Architecture
  • Containers
  • Examples
  • Project Structure
  • TravelRep.CentralApi
  • Chaos Monkey
  • TravelRep.App
  • TravelRep.Ambassador
  • Hangfire
  • Enqueue and Schedule
  • Persistence and Configuration
  • Hangfire Dashboard
  • Containers
  • Docker Compose
  • Displaying a UI
  • Contacting the Host Machine from a Container
  • host.docker.internal
  • Configuring SSL/TLS
  • mkcert.
  • Step 1. Install mkcert
  • Step 2. Install the Trusted Root Certificate
  • Step 3. Create a Certificate
  • Step 4. Copy the Certificate into the Central Service API
  • Step 5. Copy the Certificates to the Ambassador API
  • Durability
  • Summary
  • Appendix A: Technical Appendix
  • Chapter 1
  • Index.