New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
How to handle addition/deletion of streams for super streams? #185
Comments
I think in terms of flexibility/ergonomics having hard coded partitions does not help with scalability. If I can not scale then it means I am not using my full potential. Also not having such feature also creates other problems for maintenance, deployment. Let me give an example then: Assume that the business domain requires messages to be delivered to the services with low latency. Imagine that you have 3 services consuming from super streams. At one point in time, the number packages send to super stream increased and your services can not keep up(lagging behind the stream) which introduces latency. In that case you would like to scale the service but the situation does not let you. |
Sorry @aeb-dev, but I didn't say that is not possible to scale the super-stream. I said that it is possible using AMQP bindings.
We don't have hard-coded partitions, The client reads the partitions when it starts. At the moment, if you add or remove partitions, you need to restart the client. We will evaluate a way to handle this kind of situation. |
Sorry I could not explained myself clearly. What I meant by scale was scaling on the fly. What I meant by hard coded was requiring a restart. So we are on the same page. If you need any further test or information do not hesitate to ask |
Thank you @aeb-dev We will think about that. |
We can expose an API the user can call externally to check the topology changes and re-create the super stream consumers/producers |
How will the user understand when to call this API? |
No way at the moment. Maybe using a timer or based on some event in your system |
As a user, can I have a separate amqp connection to listen changes on exchange? Does amqp send such events and can I listen to those events with amqp client? |
Can this be used for listening on changes on stream and call new API accordingly? |
Is it possible to add or delete a stream from a super stream while the producer is running?
I made a simple test:
I have one producer that sends to
super.stream.test
super streamsuper.stream.test
has 3 partitions ass1
,s2
,s3
.The system is running and I want to add one more partition(s4) to the
super.stream.test
. How can I handle this?The text was updated successfully, but these errors were encountered: