class BatchingTransactionAppender extends LifecycleAdapter implements TransactionAppender {

    @Override
    public void checkPoint( LogPosition logPosition, LogCheckPointEvent logCheckPointEvent ) throws IOException
    {
        // Synchronized with logFile to get absolute control over concurrent rotations happening
        synchronized ( logFile )
        {
            try
            {
                transactionLogWriter.checkPoint( logPosition );
            }
            catch ( Throwable cause )
            {
                databaseHealth.panic( cause );
                throw cause;
            }
        }
        forceAfterAppend( logCheckPointEvent );
    }

    public  BatchingTransactionAppender( LogFiles logFiles, LogRotation logRotation,
            TransactionMetadataCache transactionMetadataCache, TransactionIdStore transactionIdStore,
            IdOrderingQueue explicitIndexTransactionOrdering, DatabaseHealth databaseHealth );

}