You've shipped to the JVM for years. WebAssembly (WASM) is how your code reaches the places the JVM can't — the browser, the edge, a Node process — as a small, fast, sandboxed binary. Here's what it is and why it matters, in Java terms.
It's a compile target, not a language — a portable binary instruction format that runs at near-native speed inside a tiny runtime (a "WASM engine") embedded in a host: a browser, a server, an edge worker. You compile to it, the way you compile Java to bytecode.
It's sandboxed by default. A module can't touch the filesystem, network, or OS unless the host explicitly hands it a function to do so. Memory-safe, isolated — closer to a locked-down applet than a process.
WASM-GC (shipped in browsers and Node through 2024) added a garbage collector to the spec. That's the unlock for managed languages: before it, Java/Kotlin had to compile their own GC into the module (huge, slow); with WASM-GC they use the host's collector — so a Java event processor becomes a compact module.
The common thread: somewhere you want to run real logic without shipping a JVM or a container — fast to start, safe to embed, the same everywhere.
You can take logic you wrote, tested, and trust in Java — and run it where the JVM was never an option: the user's browser, a CDN edge node, a Node service — with millisecond start, no container, no JVM, sandboxed and deterministic. Not a rewrite in JavaScript; the same compiled logic.
A compiler — TeaVM is the one used here — turns Java bytecode into a WASM-GC module ahead of time. No JVM ships with it; the module is self-contained logic.
Honest about the edges: it's a sandbox + an ahead-of-time, closed world. Reflection, threads, arbitrary I/O, and some libraries don't translate directly — they need metadata or a different approach. Pure compute and event logic translate cleanly.
A Fluxtion event processor is an ideal WASM citizen: deterministic, single-threaded, no I/O in its core (the host feeds it events), and AOT-compiled with no runtime reflection — exactly the shape WASM wants. Author and test it in Java, compile to WASM, run it in the browser or at the edge.