Menggunakan kembali kunci root agregat di seluruh konteks yang dibatasi?
Seperti yang dinyatakan dalam pertanyaan, apakah ini praktik yang buruk? Saya memiliki akar agregat Pengguna dalam konteks terbatas Identitas untuk mengautentikasi pengguna. Dalam konteks terikat ini saya memiliki bidang untuk Pengguna yang terkait dengan identifikasi Pengguna misalnya email, pw asin, dan sebagainya.
Saya juga memiliki subdomain umum untuk menangani pemberitahuan. Dalam konteks ini, Pengguna adalah Notificant. Dalam konteks ini, Notificant memiliki field misalnya jumlah notifikasi yang belum dibaca, lastRead dll.
Apakah baik untuk menggunakan kembali ID Pengguna dalam kasus ini, karena saya tahu ada korespondensi 1-ke-1 antara Pengguna dan Pemberitahu? Atau haruskah saya memiliki kolom di root Notificant yang mereferensikan Pengguna? Rasanya mubazir, karena kemudian saya harus melakukan pencarian untuk memetakan di antara mereka ketika saya tahu hubungannya simetris.
Jawaban
Tidak, jangan gunakan kembali kunci root agregat untuk mengidentifikasi objek berbeda dalam konteks berbeda!
Mengapa?
- Karena a
Notificant
bukan aUser
. Mungkin hari ini, sebagian besar pengguna diberi tahu. Tetapi besok Anda mungkin harus memberi tahu pihak ketiga yang tidak menggunakan sistem, atau bahkan sistem pemantauan otomatis. - Karena itu adalah konteks terbatas lainnya, dan konteks terbatas dapat berkembang secara independen. Mungkin hari ini
User
danNotificant
berbagi granularitas yang sama dan mungkin berhubungan langsung satu dengan satu. Tapi siapa yang tahu tentang hari esok? Jadi, Anda perlu memikirkan dengan cermat bagaimana mereka harus dikaitkan.