img-responsive

Tomasz Kowalczewski

When I finished playing with code at university I took my baby steps in real word working on an airline system that processed thousands of transactions per second. There was no turning back and I become hooked on creating multithreaded, high volume and latency sensitive backend services. It turned out that these require as much profiling, optimizing and GC tuning as applying basic good design practices. Right now I work at a small polish startup company where I help create cloud based real time big data processing backend. I like to explore JVM’s inner workings, GC algorithms and all things mechanical sympathy.

Lectures

In Polish Reactive Java

Wymagania wydajności, skalowalności i odporności na awarie stawiane przed współcześnie tworzonymi aplikacjami są coraz większe. Ruch związany z reactive manifesto promuje architekturę aplikacji, która ma nam ułatwić sprostanie tym zadaniom. Rx Java pozwala na pisanie serwisów wykonujących zadania w wielu wątkach. Podstawową jednostką przetwarzania jest zdarzenie, a Rx Java udostępnia nam warstwę abstrakcji w postaci strumieni zdarzeń oraz zestawu funkcji pozwalających na filtrowanie, grupowanie, transformację oraz łączenie ich ze sobą. Programista po stronie serwera decyduje jak i kiedy zdarzenia są generowane, a po stronie klienta w jaki sposób są one łączone z innymi strumieniami i konsumowane. W ramach prezentacji pokażę jak korzystać z biblioteki Rx Java, jak jej zastosowanie zmienia architekturę aplikacji i w czym to podejście jest lepsze od stosowania wzorców Future i Callback. Zbudujemy prosty serwis komunikujący się asynchronicznie z innymi aplikacjami. Postaramy się aby ich awarie miały minimalny wpływ na funkcjonalność naszego serwisu. Zmierzymy jego wydajność i porównamy z podejściem gdzie wątki działają synchroniczie i blokują w oczekiwaniu na dane.