changed § Methods and properties can’t change state § Modifications return new object § Safer especially in multi-‐threaded environments ¡ Mutable (System.Text.StringBuilder) § Methods and properties can change state § Can be faster in practice
based on this identity ¡ Conceptually immutable § Except through public methods § Protects from invalid states Person PersonID Puid Name Email This is my entity, there are many like it, but this one is mine
entity ¡ Guarantee consistency ¡ Outside entities can only reference a root ¡ Controls the entire aggregate Order OrderLines Money Address Referral OrderType