You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The durable consumer is only read from a single go-routine (managing scale-out with subject-mapping partitions and separate consumer per mapped subject)
All msgs must be processed in order, any out-of-order situation must be prevented or handled in failsafe way (not removing and adding the durable consumer on a previous number since there is a risk to crash after removing the old but before creating the newly added consumer.
The only available way I found to ensure the correct order is MaxAckPending:1, and that removes all preloading/blocking/...
Would it be possible for the client to do some automagic in this situation, like the OrderedConsumer. If the client got itself a bunch of msgs with some AckAll and NakAll and ProcessingRangel, it should be possible for it to keep the messages queued in it viable by calling ProcessingRange with the msgs that is not yet visible through the client, call Processing for the msg made available through the client and ensuring re-try and time-limit for ack still works as expected. I would expect a ProcessingRange pub from the client is way more effective than waiting for the full ack roundtrip to be able to fetch the next msg.
It could autobalance the numbler of msgs preloaded (don't really know how ordered consumer handles it)
This combined with some was to publish msgs that must be persisted in the correct order with less roundtrips will make jetstream eventsouring a lot less depending on network latency for performance. And that would really be a good thing
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
The durable consumer is only read from a single go-routine (managing scale-out with subject-mapping partitions and separate consumer per mapped subject)
All msgs must be processed in order, any out-of-order situation must be prevented or handled in failsafe way (not removing and adding the durable consumer on a previous number since there is a risk to crash after removing the old but before creating the newly added consumer.
The only available way I found to ensure the correct order is MaxAckPending:1, and that removes all preloading/blocking/...
Would it be possible for the client to do some automagic in this situation, like the OrderedConsumer. If the client got itself a bunch of msgs with some AckAll and NakAll and ProcessingRangel, it should be possible for it to keep the messages queued in it viable by calling ProcessingRange with the msgs that is not yet visible through the client, call Processing for the msg made available through the client and ensuring re-try and time-limit for ack still works as expected. I would expect a ProcessingRange pub from the client is way more effective than waiting for the full ack roundtrip to be able to fetch the next msg.
It could autobalance the numbler of msgs preloaded (don't really know how ordered consumer handles it)
This combined with some was to publish msgs that must be persisted in the correct order with less roundtrips will make jetstream eventsouring a lot less depending on network latency for performance. And that would really be a good thing
Beta Was this translation helpful? Give feedback.
All reactions