[DDDD] Perubahan pada Repository
Sebagian besar orang menggap bahwa repository merupakan abstraksi dari collection dimana object tinggal disana. Perubahan yg dilakukan pada DDDD adalah object2 yg tinggal pada repository bertanggung jawab untuk mengetahui perubahan statenya.
Contoh nyatanya adalah Order yg berinteraksi dengan Repository. Order hidup di dalam repository. Order akan memberikan perubahan2 yg terjadi pada dirinya semenjak dia dibuat. Repository kemudian menanyakan perubahan itu dan bertanggung jawab terhadap apa yg akan dilakukan perubahan tersebut. Salah satu yg dapat dilakukan oleh repository adalah melewatkannya ke pipeline atau langsung melakukan processing ke database.
Sama seperti DDD classic dimana satu aggregate memiliki satu repository, tetapi sekarang repository bertanggung jawab terhadap perubahan state dari aggregate root. Mekanismenya adalah repository meminta perubahan dari aggregate root, aggregate root tidak hanya memberikan perubahannya saja tetapi juga perubahan dari anak2nya. Perubahan tersebut merupakan satu unit of work.