How to make "shared subscription" message processing type?My current understanding about knative eventing:- Knative uses push mechanism to deliver messages, I specify function name OR uri in the subscriber section for trigger.- Channels/brokers respect message ordering
E.g.Publisher(s) --push msg A, B, C--> Broker -> trigger --C, B, A--> consumer1) Publisher pushes messages A, B, C2) trigger sends message A to consumer3) consumer processes A, sends ACK4) trigger sends message B to consumer5) consumer processes B, sends ACK6) trigger sends message C to consumer7) consumer processes C, sends ACKso it is one-by-one in-order processing, correct?
Let's say I need a queue of tasks which do no require ordered processing. Publishers publish messages to be processed in parallel (e.g. round robin), and we want fire and forget scenario (submit message to durable channel/broker).In terms of knative I see it like:Publishers (*) --Push msgs--> KN-Broker --Push msgs--> Trigger Filter --Push msgs --> (KN-ingress --Push msg-->) KN-FunctionKN serving scales functions to process messages.
How to achieve that?What if functions scaling has reached upper limit and still messages are coming, is processing timeout and retry happens?
One more thing, kn-eventing uses push mechanism to deliver messages, is it possible to have 'pull' mechanism, to be able to apply reactive-stream processing and rely on back pressure mechanism?
Please let me know if I need to clarify something, and let's discuss this topics.Thank you
--
You received this message because you are subscribed to the Google Groups "Knative Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to knative-user...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/knative-users/741acb87-1a7a-46c9-999a-b041e58e4d4dn%40googlegroups.com.
Let's say I need a queue of tasks which do no require ordered processing. Publishers publish messages to be processed in parallel (e.g. round robin), and we want fire and forget scenario (submit message to durable channel/broker).In terms of knative I see it like:Publishers (*) --Push msgs--> KN-Broker --Push msgs--> Trigger Filter --Push msgs --> (KN-ingress --Push msg-->) KN-FunctionKN serving scales functions to process messages.Use a Knative Serving Service as the runtime for your function, and it will scale based on load.
Thanks for the answers,One point is not fully clear to me:Let's say I need a queue of tasks which do no require ordered processing. Publishers publish messages to be processed in parallel (e.g. round robin), and we want fire and forget scenario (submit message to durable channel/broker).In terms of knative I see it like:Publishers (*) --Push msgs--> KN-Broker --Push msgs--> Trigger Filter --Push msgs --> (KN-ingress --Push msg-->) KN-FunctionKN serving scales functions to process messages.Use a Knative Serving Service as the runtime for your function, and it will scale based on load.I understand how kn-serving helps with scaling, but what about durability?
So I need two things here:
- durable delivery, it means message is preserved until it is processed OR ttl is over
- scaling - which is covered by kn-serving
My understanding that I need to combine kn-eventing (e.g. kafka-channel/broker) to address delivery guarantees and kn-serving to address scaling.Is there broker/channel configuration to setup shared subscription (I use the term from pulsar docs: shared subsciption ) ?
--
You received this message because you are subscribed to the Google Groups "Knative Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to knative-user...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/knative-users/6e534f5d-df24-490d-92fd-415e06eff7cfn%40googlegroups.com.