Sobes.tech
Junior — Senior
71

Надёжный доступ к медленному и нестабильному сервису

Task condition

Существует внешний сервис, отвечающий за расчёт скидок для клиентов. Его реализация представляет собой старый монолит, который работает непредсказуемо: время ответа может колебаться от нескольких секунд до нескольких часов. Требуется спроектировать механизм, позволяющий ограничить влияние такой задержки и сделать взаимодействие с монолитом более предсказуемым и отказоустойчивым.

package main

import (
  "fmt"
  "http"
)

// Функция обращается к устаревшему монолиту и может работать очень медленно.
func fetchDiscount() float64 {
  disc, _ := http.Get("http://discounts.com/my")

  return disc
}

func main() {
  fmt.Printf("Ваша скидка: %v", fetchDiscount())
}