[ https://issues.apache.org/jira/browse/KAFKA-1772?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14226259#comment-14226259 ]
Andrii Biletskyi commented on KAFKA-1772: ----------------------------------------- [~junrao]: Thanks for your feedback! My vision: 1. Yes, looks like utility+command fits flawlessly only topic command. Although, I like the idea separating request types at utility level - this structures a bit tons of our commands. I.e. limit possible utilities to mentioned in the ticket but do not regulate commands as shared among all utilities. 2. Not sure about that, it is still being discussed whether we should use json for that (because of third-party json lib dependency); maybe we also can represent args in simple byte format (as all current requests). 3. Since all commands are really subtype of AdminRequest we can't have specific response for each command. Currently AdminResponse is a just an outcome string (and optionally error code). So if mutating command is successful - empty Response is returned, if it is list/describe command - description is returned in outcome string. 4. No final decision here. It's proposed to make all commands async on broker side and leave to client responsibility to block, executing verify or whatever else method to check command is completed. When commands are called from cli, this logic, of course, will be plugged into cli code, so user (if he wants) will experience such commands as blocking. > Add an Admin message type for request response > ---------------------------------------------- > > Key: KAFKA-1772 > URL: https://issues.apache.org/jira/browse/KAFKA-1772 > Project: Kafka > Issue Type: Sub-task > Reporter: Joe Stein > Assignee: Andrii Biletskyi > Fix For: 0.8.3 > > Attachments: KAFKA-1772.patch > > > - utility int8 > - command int8 > - format int8 > - args variable length bytes > utility > 0 - Broker > 1 - Topic > 2 - Replication > 3 - Controller > 4 - Consumer > 5 - Producer > Command > 0 - Create > 1 - Alter > 3 - Delete > 4 - List > 5 - Audit > format > 0 - JSON > args e.g. (which would equate to the data structure values == 2,1,0) > "meta-store": { > {"zookeeper":"localhost:12913/kafka"} > }"args": { > "partitions": > [ > {"topic": "topic1", "partition": "0"}, > {"topic": "topic1", "partition": "1"}, > {"topic": "topic1", "partition": "2"}, > > {"topic": "topic2", "partition": "0"}, > {"topic": "topic2", "partition": "1"}, > ] > } -- This message was sent by Atlassian JIRA (v6.3.4#6332)