ddd-da-massa

Apply Domain-Driven Design patterns to Jakarta EE web applications.

1|1|Updated Dec 27, 2025
One-click install
npx skills add https://github.com/emvnuel/SKILL.md --skill ddd-da-massa
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: ddd-da-massa
Source: https://github.com/emvnuel/SKILL.md/tree/main/ddd-da-massa
Command: npx skills add https://github.com/emvnuel/SKILL.md --skill ddd-da-massa

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Practical guidance for applying Domain-Driven Design patterns in Jakarta EE web applications to reduce cognitive load and improve maintainability across controllers, services, entities, and DTOs.

Core Features & Use Cases

  • 100% Cohesive Controllers: ensure each controller uses all injected dependencies.
  • Rich Entities: embed business logic inside entities to enforce invariants.
  • Form Value Objects: smart DTOs that convert themselves to domain objects.
  • Domain Service Controllers: when necessary, merge controller and service responsibilities for small, clear flows.
  • Load Distribution Guidance: techniques to balance cognitive load across layers in web apps.

Quick Start

Identify core domain concepts, design cohesive layers (controllers, services, entities, DTOs), then apply the load-distribution guidelines to iterate toward balanced architectures.

Frequently Asked Questions about ddd-da-massa

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

FAQPage Schema
How do I apply Domain-Driven Design patterns in Jakarta EE web applications?

You implement DDD in Jakarta EE by designing cohesive controllers, rich entities, and form value objects to balance cognitive load across web layers and improve maintainability.

Why does high cognitive load occur in Java web architecture and how do I reduce it?

High cognitive load in Java web architecture occurs when business logic scatters across layers. Reduce it by embedding logic inside rich entities and merging controller and service responsibilities for clear flows.

What is a cohesive controller in Domain-Driven Design?

A cohesive controller in Domain-Driven Design is a controller that uses 100% of its injected dependencies. This ensures tight architecture cohesion and prevents unnecessary complexity across Jakarta EE layers.

How do I create smart DTOs that convert to domain objects in Java?

Create smart DTOs by designing form value objects that convert themselves to domain objects. This encapsulates mapping logic and keeps domain layers clean within Jakarta EE web applications.

Can I merge domain services and controllers in Jakarta EE?

You can merge domain services and controllers in Jakarta EE for small, clear flows. This Domain Service Controller pattern combines responsibilities to streamline processing and reduce architectural overhead.

What are the limitations of using rich entities for business logic in Java?

Rich entities embed business logic to enforce invariants, but may introduce tight coupling if overused. Limit them to core domain concepts and use domain service controllers for complex cross-entity flows.