[ https://issues.apache.org/jira/browse/KAFKA-12158?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17262722#comment-17262722 ]
Sagar Rao commented on KAFKA-12158: ----------------------------------- hey [~hachikuji], can I take this one up? > Consider better return type of RaftClient.scheduleAppend > -------------------------------------------------------- > > Key: KAFKA-12158 > URL: https://issues.apache.org/jira/browse/KAFKA-12158 > Project: Kafka > Issue Type: Sub-task > Reporter: Jason Gustafson > Priority: Major > > Currently `RaftClient` has the following Append API: > {code} > Long scheduleAppend(int epoch, List<T> records); > {code} > There are a few possible cases that the single return value is trying to > handle: > 1. The epoch doesn't match or we are not the current leader => return > Long.MaxValue > 2. We failed to allocate memory to write the the batch (backpressure case) => > return null > 3. We successfully scheduled the append => return the expected offset > It might be better to define a richer type so that the cases that must be > handled are clearer. At a minimum, it would be better to return > `OptionalLong` and get rid of the null case. -- This message was sent by Atlassian Jira (v8.3.4#803005)