func NewEventRegister() EventTypeRegister {
	return &EventType{}
}
NewEventRegister gets a EventyTypeRegister interface
package eventhus
import (
	"fmt"
	"reflect"
	"strings"
	"sync"
)
var (
	mu       sync.RWMutex
	registry = make(map[string]reflect.Type)
)
type Event struct {
	ID            string      `json:"id"`
	AggregateID   string      `json:"aggregate_id"`
	AggregateType string      `json:"aggregate_type"`
	Version       int         `json:"version"`
	Type          string      `json:"type"`
	Data          interface{} `json:"data"`
}
type Register interface {
	Set(source interface{})
	Get(name string) (interface{}, error)
	Count() int
}
type EventTypeRegister interface {
	Register
	Events() []string
}
type EventType struct {
	sync.RWMutex
}