A batch of rookie questions #28616
Unanswered
MightyPixel
asked this question in
Q&A
Replies: 1 comment
-
👋 |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Hi everyone - a new Quarkus user here 👋
First I have to say that you have done great work with the documentation and the whole project looks awesome! I managed to create a Quarkus backend app sprinkled with handy extensions that reads from Kafka, gathers additional data from APIs and updates some downstream systems in reactive style. However I still have some questions that aren't clear to me:
First question: I am looking a way to control the rate of consuming from an incoming channel (in my case a Kafka topic). I saw that there is a way to limit publishing using
max-inflight-messages
, is something something similar? Maybe max unacknowledged (inflight) messages or max messages per second.After reading this insightful guide I decided to try to solve the problem using
Multi
. This led me to:Second question How can I consume incoming messages as
Multi<Message<CustomPayload>>
? So that I can control the demand of messages and consume them at a rate that is acceptable for the downstream.I saw an example that has a field of type
Multi<Double> prices;
and it is exposed as endpoint, but I can't connect the dots how to make a normal Kafka consumer that reads from the stream and process them. Any examples would be welcome!To give some context - during the processing of messages I am making requests to APIs each with different rate limiting policy and speed capabilities. I want to process all messages without dropping and if a downstream goes down to pause consumption or fail gracefully. In many articles around fault tolerance I have seen ways to act after the systems have started malfunctioning which is great to know, but I couldn't find much info on how to prevent greedy usage (lower number of requests only when something goes bad).
Third question The
dead-letter-queue
strategy sounds great. Are there any helpful guides on how to process messages that end up there? I was thinking of endpoint that can be used to request reprocessing of certain offsets or a special mode of the app that can be launched by a developer.Bonus question I'm trying to use
quarkus-smallrye-health
extension, but I have the following problem: any additional data for checks is nested inside adata
field inside each check. In order to be compliant with a standard in my company I need to basically remove the nesting and just have a flat structure in eachcheck
. Is there a clean way to achieve that? Or I'm better of implementing my own custom healthchecks?Finally I wanted contribute an idea (maybe more if it is a good and feasible one): the
quarkus dev
mode is awesome. Are there any plans to incorporate something likejshell
inside theQuarkus Terminal
? I imagine having something like aREPL
would fit great with the live reload nature of Quarkus.If having multiple questions in single discussion isn't advised I'm happy to split them :)
Cheers!
Beta Was this translation helpful? Give feedback.
All reactions