Uploaded image for project: 'Hybrid Cloud Console'
  1. Hybrid Cloud Console
  2. RHCLOUD-44508

Migrate Drawer to Quarkus native mode

XMLWordPrintable

    • Quality / Stability / Reliability
    • 5
    • False
    • Hide

      None

      Show
      None
    • False
    • None
    • Unset
    • None

      The Problem

      The native image successfully:

      • ✅ Compiles and starts
      • ✅ Connects to Kafka brokers
      • ✅ Joins the consumer group
      • ✅ Subscribes to the topic

      But it fails to:

      • ❌ Poll messages from Kafka
      • ❌ Trigger the @Incoming method
      • ❌ Process any messages

      This is a known issue with Reactive Messaging in native mode - the polling loop uses dynamic features that GraalVM can't fully optimize.

      Most Relevant Issue

      https://github.com/quarkusio/quarkus/issues/12150 - This is the exact issue you're experiencing. A user reported that their application with @Incoming annotation worked locally but stopped consuming messages when deployed as a native jar. The logs showed mediators initializing and connecting properly, but messages weren't being processed.

      Related Native Image Issues

      1. https://github.com/quarkusio/quarkus/issues/44561 - Users reported consumers not polling messages with timeout errors in native mode (November 2024)
      2. https://github.com/quarkusio/quarkus/discussions/51079 - Consumer connected successfully but lag increased with zero messages consumed (November 2025)
      3. https://github.com/quarkusio/quarkus/issues/7066 - Native image compilation issues with Kafka components
      4. https://github.com/quarkusio/quarkus/issues/4683 - Reflection configuration issues for Kafka serializers
      5. https://github.com/quarkusio/quarkus/issues/2548 - ClassNotFoundException in native images with reactive messaging

      Useful Resources

      Key Takeaways

      The consensus from these issues is that:
      1. Reactive Messaging with Kafka can work in native mode, but requires careful configuration
      2. Reflection registration is critical for serializers/deserializers
      3. Some users resort to JVM mode for production Kafka consumers
      4. The issue often manifests as "silent failures" - consumer connects but doesn't poll

      The GitHub issue #12150 is your best starting point for community solutions and workarounds.

      Sources:

              rh-ee-gduval Guillaume Duval
              rh-ee-gduval Guillaume Duval
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Created:
                Updated:
                Resolved: