During startup, when two threads/goroutines call transactionCommitInformer() (https://github.com/cloudwan/gohan/blob/master/server/transaction_commit_informer.go#L30), both may observe transactionCommited == nil and both will initialize transactionCommited, so both calls will return separate instances of transactionCommited.