piątek, 15 lipca 2011

Fowler o CqRS

Koncepcja architektury CqRS doczekała się oficjalnego błogosławieństwa przez samego guru współczesnej inżynierii oprogramowania - Martina Fowlera.

/*
*Pamiętam jak jeszcze w kwietniu Greg Young opowiadał mi
* o swojej pierwszej prezentacji na temat CqRS,
* gdzie w pierwszych rzędach siedzieli: Uncle Bob, Eric Evans i Martin Fowler.
* Po prezentacji Evans podszedł i powiedział:
*bardzo słaba prezentacja, zrozumiałem tylko 30%:)
*/

Tak więc możemy uznać, że CqRS wchodzi do kanonu stylów architektonicznych - z zastrzeżeniem jednak co do zakresu stosowalności: okiełznanie chaosu w złożonych częściach systemu i potrzeba skalowania. Czyli w sumie otrzymujemy pogodzenie dwóch skrajnych interesów: elegancki model (np. DDD) z wysoką wydajnością.
"So while CQRS is a pattern I'd certainly want in my toolbox, I wouldn't keep it at the top."

Warto zwrócić też uwagę, że Fowler wyraźnie rozróżnia CqRS, który jest stylem architektonicznym od Event Sourcingu, który jest jedną z możliwych technik persystencji. Z obserwacji mogę powiedzieć, że często jest to zbyt silnie utożsamiane, ale należy pamiętać, że zawsze można mieć jedną z tych rzeczy bez drugiej.

Z ciekawych kontekstów, w których Event Sourcing zaczyna mieć sens oraz mocno się opłaca, jest wykorzystanie porcji zdarzeń jako wektorów uczących dla Sztucznych Sieci Neuronowych. Nie mówi się o tym zbyt wiele w mainstreamie, ale ES jest naturalną i od dawna stosowaną techniką w tych klasach systemów. Próba przeniesienia ES na systemy gdzie nie ma takich zastosowań na pewno się powiedzie, pytanie tylko jakim kosztem w stosunku do jakich zysków...?


//==========================================

Wiele osób pyta o postępy w przygotowywaniu naszego DDD-CqRS Sampla w Javie.
Pierwszy milestone zbliża się dużymi krokami. Mamy trzy małe konteksty domen z przykładami każdego Building Blocku. Stos biznesowy jest ilustrowany zarówno klasycznie serwisami jak i commandami, gdzie mamy kilka ciekawych technik takich jak asynchroniczność i filtrowanie duplikatów. Sagi docelowo będą działać na JMS. Stos prezentacji ilustruje kilka typowych optymalizacji odczytu.

Chętnych, którzy chcieliby ocenić projekt przez jego upublicznieniem zapraszam do kontaktu.

3 komentarze:

Tomasz Nurkiewicz pisze...

s/Greg Yung/Greg Young/

Sławek Sobótka pisze...

o, dzięki:)

btw: być może uda mi się zaprosić Grega ponownie do Polski - może również do wschodniej:)

jnb pisze...

Fajnie. Jego dwie prezentacje na 4Developers w tym roku były świetne.