decaton icon indicating copy to clipboard operation
decaton copied to clipboard

High throughput asynchronous task processing on Apache Kafka

Results 32 decaton issues
Sort by recently updated
recently updated
newest added

- Currently, Decaton's SubPartitioner uses murmur2 hash of the key to determine the subpartition to ensure per-key processing ordering guarantee. - However, sometimes we want to use round-robin strategy even...

good first issue

After [this change](https://github.com/line/decaton/pull/99/files#diff-4df160cb6c95ec9c8815d2af1dda8a9ebe841c74c4e094bd3ef8e75074dd0af5L121) in https://github.com/line/decaton/pull/99, decaton stopped incrementing `taskMetrics.tasksError` for synchronous failure. This PR wants to fix `tasksError` to work again. I applied quick patch as first PR, but implementing...

- Kafka 2.4.0 introduces `cooperative rebalancing protocol`, which mitigates the stop-the-world effect upon rebalancing * https://cwiki.apache.org/confluence/display/KAFKA/KIP-429%3A+Kafka+Consumer+Incremental+Rebalance+Protocol - Users can opt-in cooperative rebalancing by specifying `CooperativeStickyAssignor` in `partition.assignment.strategy` config or implementing...

enhancement

- In Kafka, it's common to use some entity's identifier (e.g. user-id) to ensure task processing ordering per entity. - At the same time, this tends to cause "hot-spot" key...

We can inject a custom `org.apache.kafka.clients.producer.Partitioner` by implementing it and passing it through `DecatonClientBuilder#producerConfig`. However, A decaton client wraps a task set by our application in `DecatonTaskRequest`. So, to determine...

# Motivation - To add a documentation for `BathingProcessor` like [task-compaction.adoc](https://github.com/line/decaton/blob/master/docs/task-compaction.adoc). Related Issue: https://github.com/line/decaton/issues/128 Related PR: https://github.com/line/decaton/pull/139

- Task batching is a common-pattern that many Decaton users often implement by their own * i.e. Batching several tasks of type `T` to `List` and process them at once....

good first issue

It would be useful for precise detection and spot the causing record when `DeferredCompletion` leak occurred by user-supplied code.

enhancement
good first issue

We are consuming Kafka topic using Decaton processor with retrying. However, `ProcessorsBuilder.consuming(String topic, TaskExtractor taskExtractor)` is not working correctly with `DefaultTaskExtractor`. `retryTaskExtractor` will unwrap `DecatonTaskRequest` using `DefaultTaskExtractor`, then `taskExtractor.extract()` here....

## Summary - Currently, Decaton uses `KafkaConsumer#poll(long)` which is deprecated and could be removed in future Kafka release

breaking change