Część V: „Put all things together” – orkiestracja poprzednich rozwiązań w jedną konfigurowalną, skalowalną aplikację.
W poprzednich artykułach przedstawiałem kolejne wzorce, które znacznie porządkują i upraszczają implementację silników obsługi zdarzeń. Pierwszym był Reactor – prosty, jednowątkowy, drugi to ThreadPool – wielowątkowa alternatywa dla reaktora, trzeci: Half Sync/Half Async – zrównoważone połączenie obu poprzedników. Każdy z nich miał jasno nakreślony zbiór wad i zalet, na bazie których należy dobrać odpowiedni wzorzec do klasy problemu, który przyszło nam implementować. Przez klasę problemu mam na myśli nie tylko złożoność podstawowej funkcjonalności (np. protokołu, który implementujemy), ale też zbiór wymagań niefunkcjonalnych – skalę, w jaką mamy się wpasować (np. ilość obsługiwanych klientów). W tej części pokażę, jak złożyć dotychczasowe rozwiązania w jedną aplikację sterowaną prostą konfiguracją.