


Greyhound providesĪ robust retry mechanism, which produces failed records to special retry topics where they will be Want to block our consumer until the back-off expires, nor do we want to retry the action in aĭifferent thread and risk losing the messages in case our process goes down. Thing we can do to recover is to retry the same operation after some back-off. (database is temporarily down, API limit exceeded, network call timed-out, etc.) and the only Sometimes things fail without our control Lightweight than JVM threads, and makes async workloads extremely efficient.Ĭonsumer retries - error handling is tricky. Greyhound automatically handles parallelizing message handling for you with automatic throttling.Īlso, Greyhound uses a concurrency model based on fibers (or green-threads) which are much more Topics) you need to manually manage your threads and/or deploy more consumer instances. Parallel message handling - A single Kafka consumer is single-threaded, and if you want toĪchieve parallelism with your message handling (which might be crucial for high throughput
#GREYHOUND MANAGER 2 FORUM HOW TO#
To allow the developers to focus on their business logic instead of how to access Kafka correctly. Greyhound tries to abstract away these complexities by providing a simple, declarative API, and This requires specific know-how and adds a lot of boilerplate when all you want to do is process messages from a topic. (when do you commit), handle consumer rebalances gracefully, handle errors (Either originating from Kafka or from user's code), etc. To get all the subtleties right - especially when you want to ensure your processing guarantees This might be fine for simple applications, however, it's hard Provided in the Java SDK, you need to run an infinite while loop which polls for new records,Įxecute some custom code, and commit offsets. Available APIs:ĭeclarative API - when you want to consume messages from Kafka using the consumer API The Open-sourced version of Greyhound is still in stages of initial rollout, so APIs might not be fully stable yet. You can read more about it on this blog post - “ Building a High-level SDK for Kafka: Greyhound Unleashed” Semantics such as parallel message handling or retry policies with ease. Greyhound seeks to provide a higher-level interface to Kafka and to express richer However, this SDK consists of somewhat low-level APIs which are difficult to use correctly. Kafka is shipped with a Java SDK which allows developers to interact with a Kafka cluster. Scala/Java High-level SDK for Apache Kafka.
