एक अच्छा schema client-driven, किनारों पर nullable-by-default, और versions के बिना evolvable होता है। यह domain को उन्हीं शब्दों में model करता है जिन्हें clients वास्तव में उपयोग करते हैं, न कि आपकी database tables के अनुसार।
Nullability
किसी field को non-null (!) केवल तभी बनाएँ जब आप उसे लौटा सकें। का अति-उपयोग एक जाल है: यदि कोई non-null field error करता है, तो वह अपने पूरे parent object को null कर देता है, जिससे एक छोटी विफलता एक बड़ी खाली जगह में बदल जाती है। किसी भी ऐसी चीज़ के लिए nullable को प्राथमिकता दें जो किसी downstream service पर निर्भर हो।
