Session abstract
What you’ll learn
Java containers are often bloated, shipping a full JDK and app server to production when your code uses a fraction of it. This session walks through a three-step refactor of the same REST API, from a 523 MB Tomcat WAR to a 121 MB Alpine image with a custom jlink JRE. That's 77% smaller with zero business logic changes, using only standard JDK tooling. We'll cover jdeps, jlink, multi-stage Dockerfile patterns, and the gotchas the tutorials skip: Class Data Sharing, reflection-loaded modules, and what breaks when you add OpenTelemetry. You'll leave with a pattern you can apply to any Java 11+ codebase.
