Constraint-Aware Data Architecture