# Domain-Driven Design (DDD)

Published articles for Domain-Driven Design (DDD).

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Microservices Deep Dive: Architecting for Scalability and Resilience

DevFeed: [Microservices Deep Dive: Architecting for Scalability and Resilience](<https://devfeed.tech/articles/microservices-deep-dive-architecting-for-scalability-and-resilience-39562.md>)

Original publisher: [Read original article](<https://ankit-rana.com/logs/10-microservices-architecture/>)

Author: hello@ankit-rana.com

Published: 2026-03-16T00:00:00Z

Content type: tutorial

Language: en

Sources: [Ankit Rana | Mechanical Sympathy](<https://devfeed.tech/sources/ankit-rana-mechanical-sympathy.md>)

Topics: [microservices architecture](<https://devfeed.tech/topics/microservices-architecture.md>), [Scalability](<https://devfeed.tech/topics/scalability.md>), [Resilience](<https://devfeed.tech/topics/resilience.md>), [Architecture & Design](<https://devfeed.tech/topics/architecture-design.md>), [Domain-driven design (DDD)](<https://devfeed.tech/topics/domain-driven-design.md>), [distributed-systems](<https://devfeed.tech/topics/distributed-systems.md>), [Deployment](<https://devfeed.tech/topics/deployment.md>)

Tags: [architecture](<https://devfeed.tech/tags/architecture.md>), [ci-cd](<https://devfeed.tech/tags/ci-cd.md>), [cloud](<https://devfeed.tech/tags/cloud.md>), [complexity](<https://devfeed.tech/tags/complexity.md>), [deployments](<https://devfeed.tech/tags/deployments.md>), [devops](<https://devfeed.tech/tags/devops.md>), [distributed-systems](<https://devfeed.tech/tags/distributed-systems.md>), [domain-driven-design-ddd](<https://devfeed.tech/tags/domain-driven-design-ddd.md>), [incident-response](<https://devfeed.tech/tags/incident-response.md>), [independent](<https://devfeed.tech/tags/independent.md>), [isolation](<https://devfeed.tech/tags/isolation.md>), [layer](<https://devfeed.tech/tags/layer.md>), [microservices](<https://devfeed.tech/tags/microservices.md>), [observability](<https://devfeed.tech/tags/observability.md>), [resilience](<https://devfeed.tech/tags/resilience.md>), [scalability](<https://devfeed.tech/tags/scalability.md>), [services](<https://devfeed.tech/tags/services.md>), [system-design](<https://devfeed.tech/tags/system-design.md>)

### AI overview

This article explains how microservices replace a tightly coupled monolith with independently deployable services aligned to business capabilities. It covers benefits such as independent scaling, fault isolation, team autonomy, and technology flexibility, while noting the added costs of communication, observability, operations, and data management. It recommends using microservices when domain complexity and scale justify the operational cost, organizing services around bounded contexts, and extracting one domain at a time.

### Source excerpt

Microservices trade deployment simplicity for independent scaling, fault isolation, and team autonomy, and they only pay off once domain complexity and scale justify the operational cost. Align services to bounded contexts, give each its own data store, and extract one domain at a time rather than splitting by technical layer.

## What Should Repositories Return in Domain-Driven Design?

DevFeed: [What Should Repositories Return in Domain-Driven Design?](<https://devfeed.tech/articles/what-should-repositories-return-in-domain-driven-design-39768.md>)

Original publisher: [Read original article](<https://furkankolcu.com/post/what-should-repositories-return-in-domain-driven-design>)

Author: Furkan Kolcu

Published: 2025-09-09T16:41:47Z

Content type: article

Language: en

Sources: [Furkan Kolcu - Software Engineer Blog](<https://devfeed.tech/sources/furkan-kolcu-software-engineer-blog.md>)

Topics: [Domain-driven design (DDD)](<https://devfeed.tech/topics/domain-driven-design.md>), [Repositories](<https://devfeed.tech/topics/repositories.md>), [Persistence](<https://devfeed.tech/topics/persistence.md>)

Tags: [aggregates](<https://devfeed.tech/tags/aggregates.md>), [clean-architecture](<https://devfeed.tech/tags/clean-architecture.md>), [design-patterns](<https://devfeed.tech/tags/design-patterns.md>), [domain-driven-design](<https://devfeed.tech/tags/domain-driven-design.md>), [domain-driven-design-ddd](<https://devfeed.tech/tags/domain-driven-design-ddd.md>), [examples](<https://devfeed.tech/tags/examples.md>), [lightweight](<https://devfeed.tech/tags/lightweight.md>), [practical](<https://devfeed.tech/tags/practical.md>), [repositories](<https://devfeed.tech/tags/repositories.md>), [repository-pattern](<https://devfeed.tech/tags/repository-pattern.md>), [software-architecture](<https://devfeed.tech/tags/software-architecture.md>), [software-engineering](<https://devfeed.tech/tags/software-engineering.md>), [technology](<https://devfeed.tech/tags/technology.md>)

### AI overview

This article examines what repositories should return in Domain-Driven Design. It compares aggregates, DTOs or arrays, and primitives or special results, concluding that repositories should return aggregates when domain behavior is needed and primitives when they express valid domain-level answers.

### Source excerpt

Repositories are a core part of Domain-Driven Design, but what they should return is often debated. Should it be aggregates, DTOs, or simple values? In this post, I share practical guidelines, examples, and tradeoffs to help clarify how to keep repositories focused on serving the domain.