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.