code: func (j *Job) fetchShards(c context.Context) ([]shard, error) {
  	ids, err := j.fetchShardIDs(c)
  	if err != nil {
  		return nil, err
  	}
  
  	shards := make([]shard, len(ids))
  	for idx, sid := range ids {
  		shards[idx].ID = sid
  	}
  
  	if err := datastore.Get(c, shards); err != nil {
  		return nil, errors.Annotate(err, "failed to fetch some shards of job %d", j.ID).Tag(transient.Tag).Err()
  	}
  	return shards, nil
  }
docs: // fetchShards fetches all job shards.