Cargando…

Domain-Driven Design with Golang Use Golang to Create Simple, Maintainable Systems to Solve Complex Business Problems /

Chapter 7: DDD for Distributed Systems -- Technical requirements -- What is a distributed system? -- CAP theorem and databases -- Distributed system patterns -- CQRS -- EDA -- Dealing with failure -- Two-phase commit (2PC) -- The saga pattern -- What is a message bus? -- Kafka -- RabbitMQ -- NATS --...

Descripción completa

Detalles Bibliográficos
Clasificación:Libro Electrónico
Autor principal: Boyle, Matthew
Formato: Electrónico eBook
Idioma:Inglés
Publicado: Birmingham : Packt Publishing, Limited, 2022.
Temas:
Acceso en línea:Texto completo (Requiere registro previo con correo institucional)
Tabla de Contenidos:
  • Cover
  • Title Page
  • Copyright and credits
  • Contributors
  • About the reviewers
  • Table of Contents
  • Preface
  • Part 1: Introduction to Domain-Driven Design
  • Chapter 1: A Brief History of Domain-Driven Design
  • The world before DDD
  • So, what are OOD patterns?
  • Eric Evans and DDD
  • Three pillars of DDD
  • Adoption of DDD
  • When should you use DDD?
  • Summary
  • Further reading
  • Chapter 2: Understanding Domains, Ubiquitous Language, and Bounded Contexts
  • Technical requirements
  • Setting the scene
  • Domains and sub-domains
  • Ubiquitous language
  • Benefits of ubiquitous language
  • Bounded contexts
  • Open Host Service
  • Published language
  • Anti-corruption layer
  • Summary
  • Further reading
  • Chapter 3: Entities, Value Objects, and Aggregates
  • Technical requirements
  • Working with entities
  • Generating good identifiers
  • A warning when defining entities
  • A note on object-relational mapping
  • Working with value objects
  • How should I decide whether to use an entity or value object?
  • The aggregate pattern
  • Discovering aggregates
  • Designing aggregates
  • Aggregates beyond a single bounded context
  • Summary
  • Further reading
  • Chapter 4: Exploring Factories, Repositories, and Services
  • Technical requirements
  • Introducing the factory pattern
  • Entity factories
  • Implementing the repository pattern in Golang
  • Understanding services
  • Domain services
  • Application services
  • Summary
  • Part 2: Real -World Domain-Driven Design with Golang
  • Chapter 5: Applying Domain-Driven Design to a Monolithic Application
  • Technical requirements
  • What do we mean when we say monolithic application?
  • Setting the scene
  • Getting started with our CoffeeCo system
  • Implementing our product repository
  • Adding an infrastructure service for payment handling
  • Paying with CoffeeBux
  • Adding store-specific discounts
  • Extending our service
  • Summary
  • Further reading
  • Chapter 6: Building a Microservice Using DDD
  • Technical requirements
  • A friendly warning (again)
  • What do we mean by microservices?
  • What are the benefits of microservices?
  • What are the downsides of microservices?
  • Should my company adopt microservices?
  • Setting the scene (again)
  • Building a recommendation system
  • Revisiting the anti-corruption layer
  • Exposing our service via an open host service