Schema yang baik itu client-driven, nullable-by-default di tepian, dan bisa berevolusi tanpa versioning. Ia memodelkan domain dalam istilah yang benar-benar dipakai client, bukan tabel database Anda.
Nullability
Jadikan sebuah field non-null (!) hanya jika Anda bisa selalu mengembalikannya. Terlalu banyak memakai adalah jebakan: jika sebuah field non-null error, ia menjadikan seluruh parent object-nya null, mengubah kegagalan kecil menjadi kekosongan besar. Lebih baik nullable untuk apa pun yang bergantung pada downstream service.
