Posts

Showing posts from August, 2026

Migrating an Established Java Service to Micronaut

Migrating an existing Java service to Micronaut is not primarily about replacing REST annotations. The more difficult work is preserving established business behavior while removing assumptions tied to the previous runtime: CDI container access, classpath composition, security wiring, request-scoped context, and HTTP-client behavior. In our case, an established domain API needed to operate alongside existing platform APIs in a single Micronaut server. The goal was to retain resource-management, workflow, and job-execution behavior while allowing the host platform to remain responsible for authentication, authorization, persistence, and request context. Define a Runtime Boundary Business logic that directly depends on a specific dependency-injection container becomes difficult to host in another framework. Legacy services commonly resolve implementations through CDI-specific constructs such as Instance<T> or multi-instance handlers. Those constructs should not be invoked from busi...