#cloud #java #architecture #exeris #jvm-performance #low-latency #off-heap #project-loom #java-project-panama

Witamy w Arkstack — JVM Performance, Off-heap Memory & Low-Latency Architecture

Arkstack.dev to blog inżynierski skupiony na JVM Performance Tuning, Low-Latency Java Architecture, Off-heap Memory Management i modernizacji systemów legacy. Pisany przez inżyniera, który walczy z GC na co dzień.

Witamy na Arkstack.dev — minimalistycznym blogu dla programistów, bez zbędnych ozdobników.

To cyfrowy dom Arkadiusza Przychockiego, Lead Cloud Architekta i Full-Stack Engineera. Jeśli zależy Ci na czystych systemach, nowoczesnej inżynierii JVM i architekturze cloud-native zrobionej porządnie — jesteś we właściwym miejscu.

Czego się spodziewać

Blog skupia się na przecięciu trzech obszarów:

  • Architektura chmury — projektowanie odpornych i ekonomicznych systemów na AWS, GCP i Azure. Infrastruktura jako kod, systemy rozproszone i lekcje wyniesione z produkcji.
  • Nowoczesna Java — język ewoluuje szybciej niż kiedykolwiek. Wątki wirtualne (Project Loom), sealed classes, pattern matching i rosnący ekosystem wokół kompilacji natywnej GraalVM.
  • Inżynieria bez balastu — każda abstrakcja ma swoją cenę. Zależy nam na tym, co faktycznie działa na metalu.

Exeris Kernel

Jednym z flagowych projektów, nad którym pracuję, jest Exeris Kernel — środowisko uruchomieniowe bez alokacji, zaprojektowane dla obciążeń o bardzo małych opóźnieniach. Główna filozofia:

Każda alokacja to zobowiązanie. Każde wywołanie systemowe to negocjacja. Tam gdzie to możliwe — rezygnujemy z obu.

Exeris Kernel zbudowany jest na bazie Foreign Function & Memory API JVM, wykorzystując zarządzanie pamięcią poza stertą (off-heap) w celu osiągnięcia przewidywalnego wykonania bez pauz GC. Przeznaczony jest dla systemów finansowych, potoków danych w czasie rzeczywistym i wszędzie tam, gdzie liczyć się mają nanosekundy.

// Przykład: alokacja bufora off-heap w Exeris Kernel
var arena = Arena.ofConfined();
var segment = arena.allocate(ValueLayout.JAVA_LONG, 1024);
segment.setAtIndex(ValueLayout.JAVA_LONG, 0, System.nanoTime());

Calendar vs. Competence

Nie mierzę swojej kariery latami w CV. Mierzę ją głębokością stosu, który musiałem rozłożyć na czynniki pierwsze.

Podczas gdy wielu spędza dekadę w strefie komfortu jednego frameworka, ja ostatnie 6 miesięcy spędziłem walcząc z JVM Garbage Collectorem i ręcznym zarządzaniem pamięcią — areny off-heap, bezpośredni dostęp przez MemorySegment via Project Panama, i twarde lekcje płynące z budowania środowiska uruchomieniowego bez alokacji od zera.

Tam zaczyna się prawdziwa inżynieria. Nie w scaffoldingu CRUDa. W momentach, gdy logi GC są jedyną wskazówką, a skoki opóźnień mierzy się w mikrosekundach, a nie sekundach.

Ten blog to ścieżka audytu tej podróży.

Filozofia

Filozofia tego bloga odzwierciedla filozofię projektu Exeris: Zero Zbędnych Elementów.

  • Brak niepotrzebnego JavaScript po stronie klienta na tej stronie
  • Brak nadętych frameworków tam, gdzie wystarczy czysta funkcja
  • Brak ceremonii, gdy prostota daje ten sam rezultat

Zbudowany z Astro — frameworkiem, który domyślnie nie wysyła żadnego JS.

Co dalej

Nadchodzące treści to między innymi:

  • Głębokie zanurzenie w kompilację natywną GraalVM dla serwisów Spring Boot
  • Projektowanie architektur multi-region active-active
  • Wnętrzności Exeris Kernel: kolejki lock-free i bufory off-heap

Budujmy rzeczy, które przetrwają.