Orchestrate your choreography! – SpreadIT 2017
Orchestrate your choreography!
– Daniel Pokusa (Onwelo)
Gdy mówimy o orkiestracji powinniśmy myśleć o filharmonii i dyrygencie, który wskazuje muzykom rytm dzięki czemu każdy muzyk wie kiedy zagrać swoją - znaną mu z nut - partię. Tak samo zachowuje się metoda, która wskazuje innym metodom, kiedy mają wykonać swoje - znane - zadanie. Z kolei choreografia to układ taneczny, który nie potrzebuje dyrygenta. Wystarczy muzyka i tancerze (np. baletu) doskonale wiedzą kiedy zatańczyć swoją partię. Muzyka tworzy dla nich pewne zdarzenia, które pozwalają im reagować na nie w z góry ustalony sposób. Podobnie działa metoda reagująca na zdarzenie- jeśli coś się wydarzy możemy wykonać z góry zaprogramowany kod.
W oparciu o te dwa fundamentalne podejścia do pisania oprogramowania zbudowano wiele frameworków i narzędzi. Leżą one w podwałach takich architektur jak Event Driven Architecture, Microservices, CQRS, Hexagonal Architecture i wiele innych. Moim zdaniem jednak zbyt rzadko zastanawiamy się nad nimi. Niezależnie w którym buzzwordzie jesteś zakochany wielokrotnie będziesz stawał przed wyborem jednej z tych dwóch dróg.
Chciałbym Wam pokazać plusy i minusy stosowania Orkiestracji i Choreografii, ale przede wszystkim jak praktycznie je łączyć ze sobą budując własną architekturę złożonych systemów- zarówno na poziomie kodu źródłowego jak i całych komponentów.