package net.openhft.chronicle.queue;

import net.openhft.chronicle.wire.Wire;

public interface AppenderListener {
    /**
     * Message appended with the index appended
     *
     * @param wire
     * @param index
     */
    void onExcerpt(Wire wire, long index);
}

@@ -64,19 +64,461 @@
 cle.
-wire.Wire;%0A
+queue.impl.single.SingleChronicleQueueBuilder;%0Aimport net.openhft.chronicle.wire.Wire;%0Aimport org.jetbrains.annotations.NotNull;%0A%0A/**%0A * A listener interface for receiving events when excerpt%0A * are durably persisted to a queue.%0A * %3Cp%3E%0A * Implementations of this interface must be thread-safe as further discussed%0A * under %7B@link #onExcerpt(Wire, long)%7D.%0A *%0A * @see SingleChronicleQueueBuilder#appenderListener(AppenderListener)%0A */%0A@FunctionalInterface
 %0Apub
@@ -550,16 +550,17 @@
 tener %7B%0A
+%0A
     /**%0A
@@ -570,94 +570,1349 @@
   * 
-Message appended with the index appended%0A     *%0A     * @param wire%0A     * @param index
+Invoked after an excerpt has been durably persisted to a queue.%0A     * %3Cp%3E%0A     * The Thread that invokes this method is unspecified and may change, even%0A     * from invocation to invocation. This means implementations must ensure thread-safety%0A     * to guarantee correct behaviour. In particular, %3Cem%3Eit is an error to assume%0A     * the appending Thread will always be used do invoke this method%3C/em%3E.%0A     * %3Cp%3E%0A     * If this method throws an Exception, it is relayed to the call site.%0A     * Therefore, care should be taken to minimise the probability of throwing Exceptions.%0A     * %3Cp%3E%0A     * It is imperative that actions performed by the method are as performant%0A     * as possible as any delay incurred by the invocation of this method%0A     * will carry over to the appender used to actually persist the message%0A     * (i.e. both for synchronous and asynchronous appenders actually storing messages).%0A     * %3Cp%3E%0A     * No promise is given as to when this method is invoked. However, eventually%0A     * the method will be called for each excerpt persisted to the queue.%0A     * %3Cp%3E%0A     * No promise is given as to the order in which invocations are made of this method.%0A     *%0A     * @param wire representing access to the excerpt that was stored (non-null).%0A     * @param index in the queue where the except was placed (non-negative)
 %0A   
@@ -1931,24 +1931,33 @@
 d onExcerpt(
+@NotNull 
 Wire wire, l

Document AppenderListener, Fix #1035 (#1036)