// Fetch fetches a set of messages func (p *messagePartition) Fetch(req *store.FetchRequest) { log.WithField("fetchRequest", *req).Debug("Fetching") go func() { fetchList, err := p.calculateFetchList(req) if err != nil { log.WithField("err", err).Error("Error calculating list") req.ErrorC <- err return } req.StartC <- fetchList.len() err = p.fetchByFetchlist(fetchList, req) if err != nil { log.WithField("err", err).Error("Error calculating list") req.Error(err) return } req.Done() }() }