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 --...
Clasificación: | Libro Electrónico |
---|---|
Autor principal: | |
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