Sobes.tech
Junior — Senior
60

Параллельный запрос к нескольким репликам БД

Условие задачи

Имеются три адреса реплик базы данных. Необходимо написать функцию, которая одновременно (в параллельных горутинах) запрашивает значение по заданному ключу у каждой из реплик. Как только одна из реплик возвращает корректный результат (значение, отличное от ErrNotFound и без ошибок), функция должна сразу же вернуть полученное значение и отменить ожидание остальных запросов.

127.0.0.1  
127.0.0.2  
127.0.0.3

Для работы предоставлен следующий метод (его реализация уже есть):

var ErrNotFound = errors.New("not found")

func Get(ctx context.Context, address, key string) (string, error) {
    return "", nil // already implemented
}