Junior — Senior
72
Надёжный доступ к медленному и нестабильному сервису
Условие задачи
Существует внешний сервис, отвечающий за расчёт скидок для клиентов. Его реализация представляет собой старый монолит, который работает непредсказуемо: время ответа может колебаться от нескольких секунд до нескольких часов. Требуется спроектировать механизм, позволяющий ограничить влияние такой задержки и сделать взаимодействие с монолитом более предсказуемым и отказоустойчивым.
package main
import (
"fmt"
"http"
)
// Функция обращается к устаревшему монолиту и может работать очень медленно.
func fetchDiscount() float64 {
disc, _ := http.Get("http://discounts.com/my")
return disc
}
func main() {
fmt.Printf("Ваша скидка: %v", fetchDiscount())
}