Patres
#programowanie #java #systemdesign
Mirki, czytam sobie różne pytania z system design i natrafiłem na coś takiego:

System do wydawania kuponów gdzie miałem się skupić na funkcjonalności do zapewnienie, że jeden kupon może być użyty tylko określoną liczbę razy. Z takich wymagań konkretnych to wysokie availability 99,999, response poniżej 100ms, założenie że będzie 2000tps


Jakbyście do tego podeszli? ChatGPT sugeruje
  • Najlepsze
  • Wszystkie komentarze
VlIN
VlIN
6
@Patres nie lepiej to ogarnąć pojedynczym update'em SQL? Coś jak "UPDATE coupon SET usagesLeft = usagesLeft - 1 WHERE Id = ? AND usagesLeft > 0"
I tylko sprawdzić czy się udało z odpowiedzi bazy.
Całą robotę zapewnienia spójności zrzucamy na bazę. A jak to za wolno działa to rozrzucić kupony przez sharding na wiele baz danych.
VlIN
VlIN
4
@Patres Query zwróci liczbę zaktualizowanych rekordów. Będziemy wiedzieli czy się udało czy nie sprawdzając czy wynik Query > 0
its_over_for_chlop
Czy #aws #cognito to dobry provider do rejestracji i logowania użytkowników?

Jak zabezpieczyć api? Chciałbym że do api mogły uderzyć urządzenia oraz użytkownicy. Nie wiem jak to najlepiej zrobić i nie wiem jak dobrze ugryźć temat.
Najbardziej sensownym pomysłem jest "Bearer " który dostajemy po zalogowaniu i dodajemy go do każdego requesta. Czy urządzenia mają mieć taki sam mechanizm autoryzowania swoich requestów?

#programowanie #solutiondesign
  • Najlepsze
  • Wszystkie komentarze
Benzen
K.....a
K.....a
Treść przeznaczona dla osób powyżej 18 roku życia...