blankensteiner commented on a change in pull request #23:
URL: https://github.com/apache/pulsar-dotpulsar/pull/23#discussion_r449674317



##########
File path: src/DotPulsar/Internal/ProducerChannel.cs
##########
@@ -90,18 +90,16 @@ public Task<CommandSendReceipt> Send(MessageMetadata 
metadata, ReadOnlySequence<
 
                 if (autoAssignSequenceId)
                 {
-                    sendPackage.Command.SequenceId = _sequenceId.Current;
-                    sendPackage.Metadata.SequenceId = _sequenceId.Current;
+                    var newSequenceId = _sequenceId.FetchNext();
+                    sendPackage.Command.SequenceId = newSequenceId;
+                    sendPackage.Metadata.SequenceId = newSequenceId;
                 }
                 else
                     sendPackage.Command.SequenceId = 
sendPackage.Metadata.SequenceId;
 
                 var response = await _connection.Send(sendPackage, 
cancellationToken).ConfigureAwait(false);
                 response.Expect(BaseCommand.Type.SendReceipt);
 
-                if (autoAssignSequenceId)
-                    _sequenceId.Increment();

Review comment:
       The producer will try to send it again and again until a reconnect 
happens and it can successfully send the package.
   Like we talked about at the beginning of the PR, using a producer 
multi-threaded doesn't make sense if you want ordering of the messages. So, 
this brings me back to the question if this should be something the user 
explicitly asks for when creating the producer or if we should find a solution 
that works for both single-threaded and multi-threaded producers. If the 
latter, then I don't see a good way of doing this other than waiting for the 
reply from the broker.




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to