Jason Gustafson created KAFKA-12158:
---------------------------------------

             Summary: 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


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)

Reply via email to