
In DDD-based .NET Core architectures, the domain model is built from entities, value objects, and aggregates.
Entities: Have an identity that persists over time.
public class Order
{
public Guid Id { get; private set; }
public OrderStatus Status { get; private set; }
}Value objects: Immutable, equality by value.
public record Money(decimal Amount, string Currency);
Aggregates: Consistency boundary with a single aggregate root.
All external references go through the root, enforcing invariants.
Architecture impact: Correct aggregate design reduces bugs, enforces invariants, and simplifies persistence.
Reference:
TaskLoco™ — The Sticky Note GOAT