ddd-patterns
SKILL.md
Domain-Driven Design (DDD): Advanced Patterns
Advanced integration patterns for handling complex distributed system interactions and transactional consistency.
🚀 Advanced Patterns
- CQRS (Command Query Responsibility Segregation): Separation of write (Command) and read (Query) models to optimize performance and scalability.
- Event Sourcing: Capturing all changes to the state of an application as a sequence of events (The current state is reconstructed from the log).
- Outbox Pattern: Ensuring transactional consistency between a database and a message broker. (Save to DB and a 'Message Outbox' in the same transaction).
- ACL (Anti-Corruption Layer): Translating and isolating external systems' models to maintain the integrity of your core domain model.
âš¡ CQRS + Event Sourcing Workflow
- Command Side: Receives request -> Aggregate Root (AR) validates -> AR emits Event -> Event saved to Event Store.
- Projection Side: Projector listens to Events -> Updates Read Model (Optimized for queries: e.g., Elasticsearch, Read DB).
- Query Side: Reads from Read Model only.
🚫 Advanced Anti-Patterns
- Premature CQRS: Adding CQRS to simple systems. (Increases complexity needlessly).
- The Giant Event: Capturing too much state in a single event. (Events should be granular business facts).
- Ignoring Eventual Consistency: Forgetting that Read Models may be out of sync for a short time. Solution: Compensating actions or UI feedback.
🔗 Integration Checklist
- Is the Outbox pattern used for cross-container communication?
- Is the ACL properly shielding the Core Domain?
- Are events immutable and versioned?
Weekly Installs
4
Repository
kinhluan/skillsGitHub Stars
1
First Seen
3 days ago
Security Audits
Installed on
opencode4
gemini-cli4
github-copilot4
codex4
kimi-cli4
amp4