func()

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

}