SALA B

Pełna agenda dnia

9:20

Otwarcie konferencji

10:00

Szybszy start - Projekt Leyden i kompilacja natywna z GraalVM

Długi czas uruchamiania i zwiększone zużycie zasobów to kluczowe wyzwania aplikacji Java, szczególnie istotne w kontekście środowisk chmurowych i konteneryzacji. Tradycyjny model JIT (Just-In-Time) kompilacji, choć elastyczny, nie zawsze spełnia wymagania nowoczesnych architektur. Prezentacja analizuje dwa podejścia do rozwiązania tych problemów: GraalVM Native Image - technologia umożliwiająca kompilację aplikacji Java do samodzielnych plików wykonywalnych Project Leyden - następca technologii CDS (Class Data Sharing) z rozszerzonymi możliwościami (Ahead-Of-Time warmup) Omówione zostaną zarówno podstawy teoretyczne obu rozwiązań, jak i praktyczne przykłady ich implementacji, ze szczególnym uwzględnieniem frameworka Spring. Obie technologie oferują znaczące usprawnienia w zakresie: Redukcji czasu startu aplikacji Optymalizacji zużycia pamięci Poprawy wydajności wykonania Jednocześnie każde z podejść ma swoje specyficzne przypadki użycia i ograniczenia, które zostaną szczegółowo przeanalizowane. Prezentacja dostarcza praktycznej wiedzy dla zespołów rozważających optymalizację swoich aplikacji Java.

Krzysztof Gonia

Java Rockstar

11:00

Przerwa

11:30

Event-Driven Architecture – how hard could it be?

The event notification pattern is a way for different parts of a system to stay connected when changes occur, without being tightly coupled. Essentially, one service tells another “Something happened over here”, so that another service (or many services) can react to that. This task was simple in the world of single-node systems. The distributed transaction protocol (XA) has been implemented by all popular database and messaging systems. Things changed for the worse when we entered the distributed technology land. Middleware vendors don’t take it on themselves to a standard that is equivalent to XA. The talk will be a walk through existing approaches to solving the problem in the application layer. Analysis of pros and cons will be conducted, together with some recommendations on which approaches work where, and where they are not necessarily applicable.

Paweł Łoziński

Java Rockstar

12:30

Przerwa

13:00

Is Spring still the king? Przegląd i porównanie nowoczesnych frameworków w świecie JVM

Technologia nieustannie się zmienia, a zachowanie statusu quo nie jest możliwe w nowoczesnej i dynamicznej branży IT. Zmusza nas to do ciągłego śledzenia dostępnych rozwiązań. Porównując i wybierając narzędzia musimy wziąć pod uwagę ogrom aspektów. Co więcej, kluczowe różnice pomiędzy konkurencyjnymi technologiami często nie są oczywiste, ukrywając się pod zasłoną marketingowego bełkotu.

Podczas tej prezentacji zweryfikujemy czy popularne, szeroko stosowane technologie backendowe o ugruntowanej pozycji (np. Spring) nadążają za nowszymi rozwiązaniami (np. Quarkus). Sprawdzimy również jak wybrać narzędzie dostosowane do problemu, unikając przy tym potencjalnych niebezpieczeństw, podstępnie czyhających na spragnionych nowości programistów.

Piotr Łaskawiec

Java Rockstar

14:00

Przerwa

14:30

Is Concurrency a Necessity?

In today’s world, applications run in increasingly complex and distributed environments. Growing data volumes and stringent performance requirements pose a challenge for developers—how do you scale, optimize speed, and still maintain code readability? In the presentation “Is Concurrency a Necessity?”, we’ll explore how Java, both in local applications and distributed systems, handles multithreading and asynchronous processing.

We’ll discuss Java’s built-in concurrency mechanisms (e.g., Thread, Executor, Future) along with popular libraries that facilitate multithreaded workloads (Reactor, Spring WebFlux, Quarkus). You’ll learn why the classic approach to multithreading may no longer suffice and how asynchronous programming shapes modern application design. We’ll also look at where code optimization ends and organizational challenges in distributed architectures begin—such as coordination, data consistency, and resilience against failures.

During the session, we’ll share best practices, design patterns, and lessons learned from years of working with multithreaded and distributed systems. By the end, we’ll answer the question: is concurrency truly a necessity in today’s projects, or rather a powerful tool to be used thoughtfully and with clear purpose?

Krystian Zybała

Java Rockstar

15:30

Przerwa

16:00

Thinking in Streams

In 2014, JDK 8 introduced the Stream API, bringing a taste of functional programming to Java. 11 years later, in 2025, with the release of JDK 24, the biggest change awaits us in the form of JEP 485 - Stream Gatherers. Do streams make sense (spoiler: yes!), what benefits do gatherers bring, when is it worth using parallel streams, and when can they get in our way - these and other questions will be answered!

Kamil Banach

Java Rockstar