Entity - идентичность по id (User). Value Object - без идентичности, неизменяемый (Address, Money). Aggregate - группа сущностей с корнем (Order + OrderItems); изменения через корень, граница консистентности. В Go: структуры с id для entity; структуры без id для value object; агрегат - тип с методами и вложенными сущностями, репозиторий по корню агрегата.
type Order struct {
ID int64
Items []OrderItem
}
func (o *Order) AddItem(sku string, qty int) { ... }