Sprawdzanie na bazie czy aplikacja jest otwarta

0

Biznes chce aby wraz z każdym requestem do backendu (a raczej przed nim) sprawdzić czy wartość na bazie pozwala na użytkowanie aplikacji. Stanów może być kilka, dajmy na to że na chwilę obecną są dwa: OPEN i CLOSED.
Moja pierwsza myśl, napisać aspect springowy, pokryć nim wszystkie controllery i po prostu przed wywołaniem każdej metody zapukać do bazy i upewnić się czy mamy approval na dalsze procesowanie. Jeśli nie, exception i przekazanie info zwrotnej na frontend.
Co o tym myślicie? A może jakiś inny pomysł?

1

Ja osobiście pomyślałbym raczej o jakimś reverse proxy nad tą aplikacją zamiast tego. Proxy robi tego healthchecka i decyduje czy routować do aplikacji czy zrobić coś innego. Pamiętaj też że to jest https://en.wikipedia.org/wiki/Time-of-check_to_time-of-use więc istnieje ryzyko że jakiś request przejdzie entry point, a zanim się wykona, stan aplikacji się zmieni, bo to nie jest atomowe. Pytanie co wtedy? :)
No i jest też kwestia performance, bo latency może mocno wzrosnąć.

0

Jeśli to nie jest zależne od użytkownika, tylko jest stanem backendu, to bym to ograł na load balancerze albo właśnie tym API Gateway.

1 użytkowników online, w tym zalogowanych: 0, gości: 1