Java / Quarkus Interview questions
Explain the execution flow of a reactive messaging pipeline using SmallRye Reactive Messaging in Quarkus?
A reactive messaging pipeline in Quarkus is built from channels connected by @Incoming/@Outgoing-annotated methods, and SmallRye Reactive Messaging wires those methods together into one continuous reactive stream, whether the endpoints are external systems like Kafka or purely in-memory channels between application components.
Each method in the chain both consumes from one named channel and, if annotated with @Outgoing, publishes its result to another, and SmallRye Reactive Messaging connects these channels transparently based purely on matching channel names declared in configuration, meaning the methods themselves don't need to know whether the channel on either side is backed by Kafka, AMQP, or just an in-memory queue connecting two application components.
Backpressure propagates naturally through this chain because every stage is a proper reactive streams publisher/subscriber: if the persist stage slows down (say, the database is under load), that slowdown propagates backward through enrich and validate automatically, ultimately reducing how fast messages are pulled from the Kafka topic in the first place, rather than allowing an unbounded backlog to accumulate in application memory at any single stage.
More Related questions...
