func main() {

	log.Println("Setting GOMAXPROCS = ", runtime.NumCPU())
	runtime.GOMAXPROCS(runtime.NumCPU())

	cmdStore := memory.NewCommandStore(10000) // config: max queued commands is 10k
	eventBus := memory.NewEventBus(false)     // config: false means not async

	cmdServiceOptions := services.CommandServiceOptions{
		TransactionsPerSecond: 100,
		BackOffDuration:       1 * time.Second,
	}
	cmdService := services.NewCommandService(cmdServiceOptions, cmdStore)

	framework := sourcing.NewFramework(memory.NewEventStore())

	refSvc := domainServices.NewDummyMeetingService()
	model.BindEvents(framework, refSvc)

	commands.BindHandlers(framework, cmdService, eventBus)

	api.Register(cmdStore)

	go cmdService.Start()
	defer cmdService.Stop()

	initSwagger()

	err := http.ListenAndServe(":8080", nil)
	if err != nil {
		log.Fatal(err)
	}
}
func (t *DomainTests) SetUpTest(c *check.C) {
	t.framework = sourcing.NewFramework(memory.NewEventStore())
	t.user = &MeetingUser{
		Type:       UserType_Google,
		ExternalId: "me user",
	}

	BindEvents(t.framework, NewDummyMeetingService())
}