domain-driven-design

Model complex business domains with strategic and tactical DDD patterns in Go.

Updated Nov 30, 2018
One-click install
npx skills add https://github.com/guygrigsby/dotfiles --skill domain-driven-design-guygrigsby
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: domain-driven-design
Source: https://github.com/guygrigsby/dotfiles/tree/main/opencode/skills/domain-driven-design
Command: npx skills add https://github.com/guygrigsby/dotfiles --skill domain-driven-design-guygrigsby

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

Domain-Driven Design (DDD) helps teams manage complex business rules by structuring software around bounded contexts, ubiquitous language, and clear context boundaries. It combines strategic planning and tactical patterns to keep systems maintainable as domains evolve, especially when multiple teams collaborate.

Core Features & Use Cases

  • Strategic DDD concepts: bounded contexts, context mapping, ubiquitous language
  • Tactical patterns: entities, value objects, aggregates, repositories, domain events
  • Go-oriented implementation guidance and references to schema mapping for OLTP and OLAP
  • Real-world examples like e-commerce, banking, and SaaS contexts to illustrate domain modeling
  • Schema mapping guidance to translate domain models into transactional and analytical schemas

Quick Start

Identify bounded contexts and core aggregates, then apply the Go patterns and schema-mapping guidance to implement a domain layer.

Frequently Asked Questions about domain-driven-design

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I model bounded contexts and aggregates for complex business domains in Go?

To model bounded contexts and aggregates in Go, identify core domain boundaries and apply tactical patterns like entities, value objects, and repositories to structure your domain layer and maintain complex business rules. This approach keeps systems maintainable as domains evolve across multiple teams.

What is the best way to map domain models to OLTP and OLAP database schemas?

Mapping domain models to OLTP and OLAP schemas requires translating your aggregate and entity structures into transactional and analytical schemas. The domain-driven design approach provides schema mapping guidance to convert Go domain layer implementations directly into compatible database structures.

When do I need domain events and context mapping in domain-driven design?

You need domain events and context mapping when multiple bounded contexts must communicate and maintain clear boundaries. These strategic DDD patterns manage complex business rules by structuring software around ubiquitous language and coordinating collaborations between different domain models.

Can I use domain-driven design patterns for e-commerce, banking, or SaaS applications?

Yes, domain-driven design patterns apply directly to e-commerce, banking, and SaaS contexts. The Skill uses these real-world examples to illustrate domain modeling, providing Go-oriented implementation guidance for designing aggregates, value objects, and repositories specific to those complex business environments.

How do I implement value objects and repositories in a Go domain layer?

Implementing value objects and repositories in a Go domain layer involves applying tactical DDD patterns to encapsulate business logic. The Skill provides specific Go-oriented implementation guidance for structuring these components alongside aggregates and domain events to build a maintainable domain layer.