code: func (b *Bus) Publish(eventName string, eventBody interface{}) {
  	e := NewEvent(eventName, eventBody)
  
  	b.mu.RLock()
  	defer b.mu.RUnlock()
  	for _, h := range b.handlers {
  		h.Handle(e)
  	}
  }
docs: // Publish an event.