Zdarzenia w architekturze

Data: 2020-02-13
Autor: Sebastian Konkol
Zdarzenia w architekturze

Jak pisałem ostatnio, rozważając metody zarządzania procesowego trzeba stawiać na zdarzenia (w oparciu o architekturę EDA, Event-Driven Architecture) i regułową organizację działań (w oparciu o rozwiązania klasy BRM, Business Rules Management). Takie są bowiem na dziś uwarunkowania organizacji współczesnego biznesu. Na tym jednak nie kończą się możliwości oferowane przez koncepcję zdarzeń ani siła wyrazu zdarzeń.

Historycznie rzecz ujmując, koncepcja zdarzeń nie jest ani nowa, ani szczególnie odkrywcza. Nawet w oparciu o dość pobieżny przegląd stosowanych wzorców projektowych widać powszechność spojrzenia zdarzeniowego:

  • sprzęt – w tej sferze w zasadzie nie ma innego trybu współpracy, każda komunikacja opiera się o sygnały i zdarzenia;
  • model programowania systemowego – wszystkie systemy na najniższym poziomie, np. systemy operacyjne, aplikacje w środowiskach graficznych, działają na zasadzie odpowiedzi na zachodzące zdarzenia;
  • modne obecnie metodyki projektowania rozwiązań – dla przykładu Domain-Driven Design i jego podstawa, czyli Event Storming, traktują zdarzenia jako fundament modelowania domeny biznesowej, a najczęstszym wzorcem implementacyjnym jest zapisywanie zachodzących zdarzeń z których odtwarza się stan obiektu (choć nie tylko to);
  • obserwowanie zmian w danych – w sferze operacyjnej zdarzenia identyfikowane na podstawie stanu danych i korelacji zmian w danych (wraz z technologią dla tego celu, Complex Event Processing), w sferze analitycznej fundamentem jest identyfikacja zmian w danych obiektów pomiędzy cyklami zasilania hurtowni.

Takich przykładów jest więcej, ale taka ich porcja chyba już wystarczy. Dlaczego zdarzenia? Bo to jest naturalny sposób działania człowieka. Na najbardziej podstawowym poziomie wcale nie jesteśmy ani procesowi, ani racjonalni – na najbardziej naturalnym poziomie reagujemy na bodźce w określonym kontekście. Opis świata sformułowany w taki sposób rozumiemy instynktownie i potrafimy się w nim szybko odnaleźć. Takie właśnie, instynktowne zrozumienie przenosimy na różne sfery świadomego działania, między innymi zarówno na grunt tworzenia jak i użytkowania rozwiązań informatycznych.

Zdarzenia, zarówno ze względu na spójność z naturalnym sposobem postrzegania jak i z powodu efektywności obsługi „w systemach” stanowią wspólny mianownik na wszystkich poziomach abstrakcji architektury. To na nich należy budować fundamentalne pryncypia architektury korporacyjnej, rozwiązań i oprogramowania. Uproszczenia i spójność to najlepsza strategia i recepta na sukces.