When you hear "Java native compilation with GraalVM," you probably think of configuration hell — endless JSON metadata files, trial-and-error reflection registrations, and build scripts that take more effort than the application itself.
Solon takes a different path. Its AOT pipeline compiles in three phases, where each phase feeds into the next. The framework's "restraint" philosophy — minimal dynamic proxies, explicit configuration over magic — makes native compilation more straightforward than you'd expect.
Let me walk through how it works, what you get, and where you might need to reach for the manual override.
The Three-Phase Pipeline
Solon Native compilation is three distinct stages, each independently runnable:






