Hexarch example fails with panic: sync: negative WaitGroup counter.
Removing extra wg.Done from Write methods of FileTransactionLogger solves the issue:
func (l *FileTransactionLogger) WritePut(key, value string) {
l.wg.Add(1)
l.events <- core.Event{EventType: core.EventPut, Key: key, Value: url.QueryEscape(value)}
// l.wg.Done()
}
func (l *FileTransactionLogger) WriteDelete(key string) {
l.wg.Add(1)
l.events <- core.Event{EventType: core.EventDelete, Key: key}
// l.wg.Done()
}