Przejdź do treści

Zadanie 7. Disaster recovery

Feature Flagi pozwalają nam wyłączyć części systemu objęte awarią. Załóżmy, że nasz serwis rekomendacji ma czkawkę.

1. Symulacja awarii

1.1. Zmodyfikuj recommendations/src/Recommendations/ProductImpressionCreateController.php

Dopisz przed zwróceniem Respons'a sleep(90).

To zasymuluje problem wydajnościowy w module odpowiedzialnym za zbieranie wyświetleń produktów.

Każdy request do naszej aplikacji po szczegóły produktu używa tego endpoint'a, więc tym samym nasza aplikacja działa z prędkością serwisu rekomendacji.

Problem wydajnościowy jednego serwisu, powoduje problem u nas.

Grono architektów postanowiło, że przerobimy implementację, tak by używała eventów dystrybuowanych przez kolejki, a ich przetwarzanie będzie przebiegało asynchronicznie. Zanim jednak ta implementacja będzie gotowa, musimy żyć z tym, co mamy.

2. Zgaszenie flagi

2.1 Zmodyfikuj main/src/Flags.php, wyłączając flagę create_impression_on_product_lookup.

2.2. Uruchom pipeline.sh, by mieć pewność, że wszystko jest ok.

2.3. Commit.