ایک اچھی schema client-driven، edges پر nullable-by-default، اور versions کے بغیر قابلِ ارتقا ہوتی ہے۔ یہ domain کو ان اصطلاحات میں ماڈل کرتی ہے جو clients واقعی استعمال کرتے ہیں، نہ کہ آپ کے database tables میں۔
Nullability
کسی field کو non-null (!) صرف تب بنائیں جب آپ اسے ہمیشہ واپس کر سکیں۔ کا حد سے زیادہ استعمال ایک جال ہے: اگر کوئی non-null field error دے، تو وہ اپنے پورے parent object کو null کر دیتی ہے، اور ایک چھوٹی ناکامی ایک بڑے خلا میں بدل جاتی ہے۔ کسی بھی ایسی چیز کے لیے جو کسی downstream service پر منحصر ہو، nullable کو ترجیح دیں۔
