Limity
Dwie rodziny limitów - ile pozwala plan i jak szybko wolno wołać endpoint - z liczbami serwowanymi przez API, które je egzekwuje.
cmssy egzekwuje dwa różne rodzaje limitów i odpowiadają one na różne pytania. Limit planu mówi, ile produktu kupiła Twoja organizacja: strony, przestrzeń, zapytania delivery na miesiąc. Strażnik ochronny mówi, jak szybko ktokolwiek może wołać dany endpoint - na każdym planie. Zapytanie może mieścić się z zapasem w limicie planu i mimo to zostać odrzucone przez strażnika, a to strażnik odpowiada 429.
Co znaczy 429
Każdy strażnik odmawia tak samo: HTTP 429 z nagłówkiem Retry-After, w którym siedzi liczba sekund do otwarcia okna. Odczekaj tyle i ponów.
Okno jest stałe, a nie wiadrem, które przecieka, kiedy pukasz. Klient traktujący 429 jak 500 i ponawiający natychmiast zostanie odrzucony do końca okna i spali na to własną przepustowość. Czytaj nagłówek.
Delivery ma budżet na workspace
Delivery API wołasz z własnego serwera, więc jego budżet jest na workspace, nie na wołającego. Każdy odwiedzający Twoją stronę renderuje się z kilku Twoich regionalnych IP, a crawler rozgrzewający zimny cache wydałby budżet per wołający w kilka sekund. Drugi wiersz delivery to właśnie ten szerszy bezpiecznik, liczony na adres - ten, który do nas dociera, niezależnie od tokenu - i nie jest to budżet, na którym pracuje Twoja strona.
Strona renderowana na własnym serwerze może nam powiedzieć, dla którego odwiedzającego jest żądanie: wyślij jego adres w x-cmssy-client-ip razem z tokenem API ograniczonym do workspace'u w x-cmssy-api-token, a każdy budżet na adres - delivery, koszyk, logowanie członków, zgłoszenia formularzy - liczy się na odwiedzającego, nie na serwer. Para jest honorowana tylko wtedy, gdy token należy do tego workspace'u, a jego właściciel nadal ma do niego dostęp; trzymaj go po stronie serwera, nigdy w przeglądarce. Token jest sprawdzany raz na minutę na serwer, a to sprawdzenie kosztuje Twój serwer jeden slot jego własnego budżetu delivery. Gdy para jest honorowana, Retry-After i nagłówki X-RateLimit-* opisują kubełek odwiedzającego, a X-RateLimit-Scope mówi, który zakres odpowiedział: workspace albo caller.
Każdy odczyt się liczy, scache'owany czy nie. CDN przed Twoją stroną jest właśnie tym, co trzyma Cię w budżecie, bo obcina odczyty, które w ogóle do nas docierają - ale odczyt, który dotarł, liczy się niezależnie od tego, czy zapiszesz odpowiedź w cache'u.
Głębokość to nie tempo
Dwa strażniki mierzą poziomy, nie zapytania: zapytanie zagnieżdżone głębiej niż limit jest odrzucane od razu i czekanie niczego nie zmieni. Spłaszcz zapytanie.
Limity miesięczne są wspólne
Limity planu należą do organizacji, nie do pojedynczego workspace'u. Zapytania delivery i transfer sumują się po wszystkich workspace'ach organizacji i liczą w miesiącu kalendarzowym.
Jak czytać tabele
Obie tabele niżej są serwowane przez API, które egzekwuje te liczby, więc ta strona nie może rozjechać się z produktem. Wiersze oznaczone jako regulowane to te, które operator może przesunąć dla danego wdrożenia; każda inna liczba jest taka sama dla wszystkich.