midDDD

What is an Application Service vs a Domain Service?

Updated Apr 28, 2026

Short answer

Application services coordinate tasks; Domain services encapsulate core business logic that doesn't fit in an Entity.

Deep explanation

Mid-level DDD focuses on the interaction between components. Aggregate Roots protect business rules (Invariants). If an Order can't have more than 10 items, the Order Aggregate Root rejects the 'AddItem' call. Domain Events help decouple these systems.

Real-world example

A banking app where a 'Transfer' triggers an 'Email Notification' via a Domain Event.

Common mistakes

  • Injecting Repositories into Entities, which couples the model to the persistence layer.

Follow-up questions

  • How large should an Aggregate be?

More DDD interview questions

View all →