Asynchronous programming is often presented as a modern invention - reactive streams, CompletableFuture, and now virtual threads promise scalable, non-blocking execution with minimal effort. But the underlying ideas are far older than the JVM. In this talk, we will take an archaeological journey back to the nostalgical era of the Java roots, exploring OVERLAPPED I/O and the transition to I/O Completion Ports (IOCP). By examining how asynchronous I/O was implemented at the operating system level - long before futures and reactive APIs - we will expose the fundamental mechanics that still govern today’s Java applications. The goal of this talk beside some nostalgia, is clarity. By understanding what the JVM actually does under the hood - and what it cannot change - we can make better architectural decisions, debug async issues more effectively, and stop treating "async" as magic. Async didn’t get easier. It just got better disguised. And sometimes slightly misleading.
Talk Level:
ADVANCED
Bio:
Born to explore cutting-edge tech, but destined to support legacy software, Ivan is finding true relics, when recreating the past. And since the history is bound to repeat, his true fate is preaching Java through the fundamental concepts that are keeping the earth on their shoulders. For fifteen odd years, Ivan is combining technical trainings, software engineering and conferences all over the globe. He is the co-organizer of the ANZ conference ChurConf and is currently a Managing Partner in the software consultancy Codexio.