{"action":"created","issue":{"url":"https://api.github.com/repos/Polyconseil/aioamqp/issues/94","repository_url":"https://api.github.com/repos/Polyconseil/aioamqp","labels_url":"https://api.github.com/repos/Polyconseil/aioamqp/issues/94/labels{/name}","comments_url":"https://api.github.com/repos/Polyconseil/aioamqp/issues/94/comments","events_url":"https://api.github.com/repos/Polyconseil/aioamqp/issues/94/events","html_url":"https://github.com/Polyconseil/aioamqp/issues/94","id":151421610,"number":94,"title":"Should not have simultaneous publishes on a channel.","user":{"login":"foolswood","id":306638,"avatar_url":"https://avatars.githubusercontent.com/u/306638?v=3","gravatar_id":"","url":"https://api.github.com/users/foolswood","html_url":"https://github.com/foolswood","followers_url":"https://api.github.com/users/foolswood/followers","following_url":"https://api.github.com/users/foolswood/following{/other_user}","gists_url":"https://api.github.com/users/foolswood/gists{/gist_id}","starred_url":"https://api.github.com/users/foolswood/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/foolswood/subscriptions","organizations_url":"https://api.github.com/users/foolswood/orgs","repos_url":"https://api.github.com/users/foolswood/repos","events_url":"https://api.github.com/users/foolswood/events{/privacy}","received_events_url":"https://api.github.com/users/foolswood/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2016-04-27T15:53:20Z","updated_at":"2016-05-17T18:27:56Z","closed_at":null,"body":"Delivery tags are server generated (and no guarantees are stated in the spec), at present aioamqp assumes that they will be incrementing by 1 from 1, which seems to hold (at least for rabbitmq).\r\n\r\nHowever, the return method does not receive the delivery tag, so the asynchronous publishes that are currently allowed are not possible to implement with this.\r\n\r\nProbably, strictly speaking, we shouldn't be guessing the delivery tag anyway."},"comment":{"url":"https://api.github.com/repos/Polyconseil/aioamqp/issues/comments/219809833","html_url":"https://github.com/Polyconseil/aioamqp/issues/94#issuecomment-219809833","issue_url":"https://api.github.com/repos/Polyconseil/aioamqp/issues/94","id":219809833,"user":{"login":"mwfrojdman","id":9638369,"avatar_url":"https://avatars.githubusercontent.com/u/9638369?v=3","gravatar_id":"","url":"https://api.github.com/users/mwfrojdman","html_url":"https://github.com/mwfrojdman","followers_url":"https://api.github.com/users/mwfrojdman/followers","following_url":"https://api.github.com/users/mwfrojdman/following{/other_user}","gists_url":"https://api.github.com/users/mwfrojdman/gists{/gist_id}","starred_url":"https://api.github.com/users/mwfrojdman/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mwfrojdman/subscriptions","organizations_url":"https://api.github.com/users/mwfrojdman/orgs","repos_url":"https://api.github.com/users/mwfrojdman/repos","events_url":"https://api.github.com/users/mwfrojdman/events{/privacy}","received_events_url":"https://api.github.com/users/mwfrojdman/received_events","type":"User","site_admin":false},"created_at":"2016-05-17T18:27:56Z","updated_at":"2016-05-17T18:27:56Z","body":"My pull request is probably responsible for that. It was added to support server acks aka the publish confirm extension of RabbitMQ. The trouble is that there is no way to know explicitly which delivery tag a published message has. The same basic.ack method is used for both server and client messages. But only the server gives a delivery tag parameter with its basic.deliver and basic.get-ok messages. Basic.publish has no such thing. I don't think it's possible with the current extension to do anything except index the published messages like now. Should be safe though, as they're sent sequentially over the channel."}}