Interface LogAppender<M extends Externalizable>

All Known Subinterfaces:
CloseableLogAppender<M>
All Known Implementing Classes:
KafkaLogAppender, MemLogAppender

public interface LogAppender<M extends Externalizable>
An appender is used to append message into a Log. Implementations must be thread safe.
Since:
9.3
  • Method Summary

    Modifier and Type
    Method
    Description
    append(int partition, M message)
    Append a message into a partition, returns LogOffset position of the message.
    default LogOffset
    append(String key, M message)
    Same as append(int, Externalizable), the queue is chosen using a hash of parameters "key".
    boolean
    Returns true if the appender has been closed by the manager.
    Returns the codec used to write record.
    Returns the Log's name.
    int
    Returns the number of partitions in the Log.
    boolean
    waitFor(LogOffset offset, Name group, Duration timeout)
    Wait for consumer to process a message up to the offset.
  • Method Details

    • name

      Name name()
      Returns the Log's name.
    • size

      int size()
      Returns the number of partitions in the Log.
    • append

      LogOffset append(int partition, M message)
      Append a message into a partition, returns LogOffset position of the message. This method is thread safe, a queue can be shared by multiple producers.
      Parameters:
      partition - index lower than size()
    • append

      default LogOffset append(String key, M message)
      Same as append(int, Externalizable), the queue is chosen using a hash of parameters "key".
    • waitFor

      boolean waitFor(LogOffset offset, Name group, Duration timeout) throws InterruptedException
      Wait for consumer to process a message up to the offset. The message is processed if a consumer of the group commits a greater or equals offset. Return true if the message has been consumed, false in case of timeout.
      Throws:
      InterruptedException
    • closed

      boolean closed()
      Returns true if the appender has been closed by the manager.
    • getCodec

      Codec<M> getCodec()
      Returns the codec used to write record. A null codec is the default legacy encoding.
      Since:
      10.2