Sunday, March 20, 2011

DCI + CQRS = Vaccine Framework

Salam berapa Malaysia

Ok last 2 weeks , aku agak busy developed simple framework , yang aku panggil vaccine framework, apa itu vaccine framework? Vaccine framework mengandungi beberapa combination pattern diantaranya ialah DCI dan DDD-CQRS. Selain dari itu vaccine framework tidak meyimpan current state domain object sebaliknya menyimpan event dalam 2 jenis event, normal event dan snapshot event.

Read dan write totally diasingkan component2 nya. Tiada lagi reference antara aggregateroot ke aggregateroot yang lain sebaliknya reference ini berlaku secara sementara didalam role apabila command di execute. Jadi reference ini hanyalah berada di read domain dan dalam bentuk denormalized.

Terdapat perbezaan ketara antara vaccine framework dengan cqrs framework yg lain seperti ncqrs (.net) dan axonframework (java). First sekali sudah tentu framework tersebut tidak support cara DCI working secara default dan framework2 tersebut semuanya derive current state object dengan replay event, walaupun framework tersebut ada process untuk derive dari snapshot tetapi ianya bukan secara default. Sama ada perlu letakkan configuration berapa bilangan event berlaku dan buat snapshot atau run another thread untuk buat snapshot dan store dlm sequence of event.

Manakala dalam vaccine, setiap event of object akan disimpan hanya kepada 2 jenis table EventSource dan EventSourceSnapshot, dan main event yang akan direplay ialah di EventSnapshotSource.

Keseluruhan application kita akan hanya ada 2 table di write component dan pelbagai table report di read component berdasarkan bagaimana kita nak show information ke user sama ada paparan ke screen atau format percetakan.

InsyAllah, aku dah rewrite sikit mars application untuk POC, mcm maner vaccine framework ini bekerja. masih lagi baby framework, hopefully dapat support 1Malaysia hahahaha .. yeyeye

0 comments: