II.
StackProfile JSON
Structured · livestack-profile:ddd-nestjs-stack
Domain-Driven Design — DDD (TypeScript, NestJS, Prisma, PostgreSQL, Docker, Vitest) json
Inspect the normalized record payload exactly as the atlas UI reads it.
{
"id": "stack-profile:ddd-nestjs-stack",
"_kind": "StackProfile",
"_file": "domain/stack-profiles/deep-stacks-7.yaml",
"_cluster": "domain",
"attributes": {
"displayName": "Domain-Driven Design — DDD (TypeScript, NestJS, Prisma, PostgreSQL, Docker, Vitest)",
"description": "A TypeScript application built on Domain-Driven Design tactical patterns,\nwhere NestJS modules represent bounded contexts containing aggregates,\nvalue objects, domain events, and repository interfaces. Prisma implements\nthe repository pattern for PostgreSQL persistence, mapping between domain\nmodels and database schemas. Domain services encapsulate cross-aggregate\noperations, while application services orchestrate use cases. Vitest\ntests the domain layer in isolation, verifying invariants and event\nemission without infrastructure dependencies. Docker Compose runs\nthe full environment. The tradeoff is substantial upfront modeling\neffort and the risk of over-engineering simple CRUD operations, but\nfor genuinely complex domains the pattern prevents the \"big ball of\nmud\" that plagues long-lived codebases.\n",
"composes": [
"language:typescript",
"framework:nestjs",
"library:prisma",
"library:zod",
"library:express",
"tool:vitest",
"tool:docker",
"tool:docker-compose",
"language:sql"
]
},
"outgoingEdges": [
{
"from": "stack-profile:ddd-nestjs-stack",
"to": "language:typescript",
"kind": "composed_of"
},
{
"from": "stack-profile:ddd-nestjs-stack",
"to": "framework:nestjs",
"kind": "composed_of"
},
{
"from": "stack-profile:ddd-nestjs-stack",
"to": "library:prisma",
"kind": "composed_of"
},
{
"from": "stack-profile:ddd-nestjs-stack",
"to": "library:zod",
"kind": "composed_of"
},
{
"from": "stack-profile:ddd-nestjs-stack",
"to": "library:express",
"kind": "composed_of"
},
{
"from": "stack-profile:ddd-nestjs-stack",
"to": "tool:vitest",
"kind": "composed_of"
},
{
"from": "stack-profile:ddd-nestjs-stack",
"to": "tool:docker",
"kind": "composed_of"
},
{
"from": "stack-profile:ddd-nestjs-stack",
"to": "tool:docker-compose",
"kind": "composed_of"
},
{
"from": "stack-profile:ddd-nestjs-stack",
"to": "language:sql",
"kind": "composed_of"
},
{
"from": "stack-profile:ddd-nestjs-stack",
"to": "role:backend-engineer",
"kind": "used_by_role"
},
{
"from": "stack-profile:ddd-nestjs-stack",
"to": "role:architect",
"kind": "used_by_role"
},
{
"from": "stack-profile:ddd-nestjs-stack",
"to": "role:tech-lead",
"kind": "used_by_role"
},
{
"from": "stack-profile:ddd-nestjs-stack",
"to": "workflow:event-storming-session",
"kind": "follows_workflow"
},
{
"from": "stack-profile:ddd-nestjs-stack",
"to": "workflow:architecture-decision",
"kind": "follows_workflow"
},
{
"from": "stack-profile:ddd-nestjs-stack",
"to": "domain:software-engineering",
"kind": "applies_to"
},
{
"from": "stack-profile:ddd-nestjs-stack",
"to": "domain:backend",
"kind": "applies_to"
},
{
"from": "stack-profile:ddd-nestjs-stack",
"to": "skill-area:domain-driven-design",
"kind": "requires_skill_area"
},
{
"from": "stack-profile:ddd-nestjs-stack",
"to": "skill-area:event-sourcing",
"kind": "requires_skill_area"
},
{
"from": "stack-profile:ddd-nestjs-stack",
"to": "skill-area:backend-api-design",
"kind": "requires_skill_area"
},
{
"from": "stack-profile:ddd-nestjs-stack",
"to": "skill-area:unit-testing",
"kind": "requires_skill_area"
},
{
"from": "stack-profile:ddd-nestjs-stack",
"to": "skill-area:schema-evolution",
"kind": "requires_skill_area"
}
],
"incomingEdges": []
}