trivago migrated their GraphQL Gateway microservices from JVM to GraalVM Native Image, eliminating JVM warm-up issues that caused timeout spikes. The migration reduced one service from 43 to 12 replicas and CPU usage from 15 to 5 cores. The team shares their migration journey including compatibility challenges with Netflix DGS, Log4j replacement with Logback, dynamic mocking limitations requiring Testcontainers, and CI/CD pipeline changes for native builds. Key trade-offs include significantly longer build times and additional runtime hints configuration. With 14 services migrated and 34 remaining, they prioritize migrations based on impact and effort, and are evaluating profile-guided optimization (PGO) for further gains.

13m read timeFrom medium.com
Post cover image
Table of contents
IntroductionBackgroundDiscovering GraalVMMigrationGet Alina Yurenko’s stories in your inboxThe Results

Sort: