in internal/app/adapters/mediation/mediation.go [52:74]
func (m *MediationEngine) MediateInboundMessage(ctx context.Context, seqName string, msg *synctx.MsgContext) error {
waitgroup := ctx.Value(utils.WaitGroupKey).(*sync.WaitGroup)
configContext := ctx.Value(utils.ConfigContextKey).(*artifacts.ConfigContext)
waitgroup.Add(1)
go func() {
defer waitgroup.Done()
select {
case <-ctx.Done():
m.logger.Info("Mediation of sequence stopped since context is done")
waitgroup.Done()
return
default:
sequence, exists := configContext.SequenceMap[seqName]
if !exists {
m.logger.Error("Sequence " + seqName + " not found")
return
}
sequence.Execute(msg)
}
}()
return nil
}