Comments (7)
I canβt believe I typed all that on my phone...
well now I feel like we should do it just based on that effort! πΈ
from kaffe.
Another thing that would be really nice is if the consumer and producer were behaviours similar to GenServer
.
defmodule MyApp.Consumer do
use Kaffe.Consumer
def start_link(config, opts \\ []) do
Kaffe.Consumer.start_link(__MODULE__, config, opts)
end
def init(config) do
{:ok, config}
end
def handle_messages(messages, state) do
...
end
end
I canβt believe I typed all that on my phone... π
Then you could start your own module in your supervision tree.
from kaffe.
@davidsantoso No, I just happened to use that one as an example.
from kaffe.
π thanks for all the suggestions. Going to try and carve out some time this week and next to groom the project a bit and see what we can refactor.
from kaffe.
@keathley based on your code snippet, curious if y'all use/prefer single message consumers more than the Kaffe.GroupMember
setup to do batch message processing?
from kaffe.
Closing due to above PR
from kaffe.
Hi,
It seems that this change did not make it to the current master of Kaffe. Currently there is no way to set configuration at runtime when starting the supervision tree, everything must be known up front.
For example, topics: You must list your topics in your configuration, but also somehow in you application code because you may want to match on the topic for logic. There is no more a single source of truth for the topic list.
You could say that you would pull your configuration in your code, using the config as a single source of truth. But then either you cannot do it at compile time, like @my_topics Application.fetch_env(:my_app, MyConsumer)[:topics]
or you cannot use runtime.exs config because those values are not available at compile time.
from kaffe.
Related Issues (20)
- Defining multiple handlers HOT 1
- worker_per_topic_partition with multiple topics HOT 1
- Examples not compatible with Elixir 1.10 or 1.11 HOT 2
- extract_der is giving error with SSL HOT 2
- Undefined function exponential_backoff HOT 10
- Offset doesn't get updated between runs and runs crash with OOM errors HOT 4
- async ack - lots of duplicate messages until I restart the application HOT 2
- Kaffe.Producer.produce_sync raises on timeout
- How to set kafka headers when publishing message HOT 1
- Invalid call to raise/reraise on brod/kpro error
- Add support for SCRAM mechanism in SASL authentication. HOT 1
- Module to help write ExUnit tests
- It's impossible to create 2 separate consumers for different topics
- Running mix with kaffe deps fails to download pc package from hex
- Wrong place for configuration
- Repeated rebalance cycle with kafka broker 2.3.0 HOT 16
- kaffe cannot recover from unreachable Kafka HOT 18
- Missing documentation HOT 8
- Connecting to a TLS-based Kafka instance under AWS MSK? HOT 18
- Receives notification when rebalance in progress/assignments revoked HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. πππ
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google β€οΈ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from kaffe.