Forwarded from Andrey Nikishaev
🔥 When you run hundreds of workers in Kubernetes, “per-container RPS limits” are not really limits.
Each pod behaves correctly on its own — but together they can easily overload a third-party provider and start getting 429 / retry later errors.
A better pattern is a Distributed RPS Quota Allocator:
Local workers keep fast in-memory pacing, while a shared allocator grants small token leases using Redis + atomic Lua.
So Redis is not hit on every HTTP request — only when a pod needs a new lease.
Result:
- cluster-wide provider limits
- low Redis load
- smooth local pacing
- simple 429 backpressure
- constant-size Redis state
The best part: global coordination without turning every request into a distributed lock.
Each pod behaves correctly on its own — but together they can easily overload a third-party provider and start getting 429 / retry later errors.
A better pattern is a Distributed RPS Quota Allocator:
Local workers keep fast in-memory pacing, while a shared allocator grants small token leases using Redis + atomic Lua.
So Redis is not hit on every HTTP request — only when a pod needs a new lease.
Result:
- cluster-wide provider limits
- low Redis load
- smooth local pacing
- simple 429 backpressure
- constant-size Redis state
The best part: global coordination without turning every request into a distributed lock.
👍1
Forwarded from Andrey Nikishaev
Сьогодні я хочу поставити вам одне питання.
Чи було у вас колись таке відчуття, що в якийсь момент все, що ви робили до цього, раптом втратило сенс?
Ви ще вчора мали плани, цілі, мотивацію, роботу, якісь амбіції, бажання щось довести собі або іншим. А потім щось наче клацає всередині - і все це більше не працює.
Ви сидите, дивитесь в стіну і не можете зрозуміти, що з вами сталося. Начебто нічого катастрофічного не відбулося, але всередині відчуття, що стара система більше не запускається. Те, що раніше штовхало вперед, більше не дає енергії. Те, що раніше здавалося важливим, тепер виглядає порожнім.
І перша думка зазвичай дуже проста: "Зі мною щось не так".
Якщо так - цей текст стане вам у нагоді
https://www.linkedin.com/pulse/%D0%BA%D0%B0%D1%80%D0%BB-%D1%8E%D0%BD%D0%B3-%D0%BF%D0%B0%D1%80%D0%B0%D0%B4%D0%BE%D0%BA%D1%81-%D0%BF%D1%80%D0%BE%D0%B1%D1%83%D0%B4%D0%B6%D0%B5%D0%BD%D0%BD%D1%8F-andrii-nikishaiev-ua-zc6uf
Чи було у вас колись таке відчуття, що в якийсь момент все, що ви робили до цього, раптом втратило сенс?
Ви ще вчора мали плани, цілі, мотивацію, роботу, якісь амбіції, бажання щось довести собі або іншим. А потім щось наче клацає всередині - і все це більше не працює.
Ви сидите, дивитесь в стіну і не можете зрозуміти, що з вами сталося. Начебто нічого катастрофічного не відбулося, але всередині відчуття, що стара система більше не запускається. Те, що раніше штовхало вперед, більше не дає енергії. Те, що раніше здавалося важливим, тепер виглядає порожнім.
І перша думка зазвичай дуже проста: "Зі мною щось не так".
Якщо так - цей текст стане вам у нагоді
https://www.linkedin.com/pulse/%D0%BA%D0%B0%D1%80%D0%BB-%D1%8E%D0%BD%D0%B3-%D0%BF%D0%B0%D1%80%D0%B0%D0%B4%D0%BE%D0%BA%D1%81-%D0%BF%D1%80%D0%BE%D0%B1%D1%83%D0%B4%D0%B6%D0%B5%D0%BD%D0%BD%D1%8F-andrii-nikishaiev-ua-zc6uf
❤6
Forwarded from Andrey Nikishaev
There are plenty of recommendations around the internet that you need to use more sugar from JS, as it makes you better developer.
But the problem, that its not. On the screen you see 2 variants A and B. A variant is "better", based on internet "experts", but its not.
Lets see rewritten versions of both with most basics operations only (just for examples its not 100% same)
Problem that variant A looks more professional, but in reality produce more problems. Both variants not ideal and have problems, but the first one not only have more of them but also hide them from viewer.
So before use any sugar - I strongly recommend to read it internal code to see how it really behave and what problems have.
#js #hiload #bugs #issues #memoryusage #speed #architecture #systemprogramming
But the problem, that its not. On the screen you see 2 variants A and B. A variant is "better", based on internet "experts", but its not.
Lets see rewritten versions of both with most basics operations only (just for examples its not 100% same)
Problem that variant A looks more professional, but in reality produce more problems. Both variants not ideal and have problems, but the first one not only have more of them but also hide them from viewer.
So before use any sugar - I strongly recommend to read it internal code to see how it really behave and what problems have.
#js #hiload #bugs #issues #memoryusage #speed #architecture #systemprogramming
👍2
Forwarded from Andrey Nikishaev
Продолжение про лимиты - про разницу алгоритмов
https://www.linkedin.com/posts/creotiv_softwarearchitecture-distributedcomputing-ugcPost-7459503773598797824-IWEw?utm_source=share&utm_medium=member_desktop&rcm=ACoAAAPl0X4BWZSqccqAVcirdBAwe5jWKVOQ9fI
https://www.linkedin.com/posts/creotiv_softwarearchitecture-distributedcomputing-ugcPost-7459503773598797824-IWEw?utm_source=share&utm_medium=member_desktop&rcm=ACoAAAPl0X4BWZSqccqAVcirdBAwe5jWKVOQ9fI
LinkedIn
#softwarearchitecture #distributedcomputing #k8s #rest #api #ratelimiting | Andrii Nikishaiev UA
How to make Rate Limiting correctly
Token Bucket and GCRA solve the same problem - rate limiting - but they think differently.
Token Bucket is simple: tokens refill at a fixed speed, every request spends one token. If the bucket is full, you can make a…
Token Bucket and GCRA solve the same problem - rate limiting - but they think differently.
Token Bucket is simple: tokens refill at a fixed speed, every request spends one token. If the bucket is full, you can make a…
👍1
Forwarded from Andrey Nikishaev
Друзі, в нас кішка по швидкій. Тяжка форма ФІП. Потрібен ін'єкційний GS. 1ампула 60$/2дні.
Курс лікування 40 днів, щонайменше.
Дуже прошу допомоги, ми зовсім по нулям
https://send.monobank.ua/jar/9tbJNeWg6U
Курс лікування 40 днів, щонайменше.
Дуже прошу допомоги, ми зовсім по нулям
https://send.monobank.ua/jar/9tbJNeWg6U
❤6😢2
Написав нову пісню https://www.youtube.com/watch?v=59G8nxgPQB0&feature=youtu.be (співаю не я)
YouTube
Щури
😺 Задонатить на помощь бездомным животных - https://uah.fund/donate
🎯 Tags ------------------------------------------------------------------
#музика #українськамузика #україна #влада #зрадники
-----------------------------------------------------------…
🎯 Tags ------------------------------------------------------------------
#музика #українськамузика #україна #влада #зрадники
-----------------------------------------------------------…
Новий кіт якого діставив КАРГ по швидкій.
Дуже потрібна фін допомога
https://send.monobank.ua/jar/9tbJNeWg6U
Дуже потрібна фін допомога
https://send.monobank.ua/jar/9tbJNeWg6U
❤3😢2
Друзі нам не вистачає 4к грн на інфузомат. Сьогодні треба забрати.
Будь ласка докиньте
https://send.monobank.ua/jar/2y8VDJwkz7
Будь ласка докиньте
https://send.monobank.ua/jar/2y8VDJwkz7
❤2
Друзі, до 11 треба оплатити їжу тваринам. треба 4300грн.
Якщо хтось може щось докинути буду дуже вдячний. Бо ми ну підсосі(
https://send.monobank.ua/jar/9tbJNeWg6U
Якщо хтось може щось докинути буду дуже вдячний. Бо ми ну підсосі(
https://send.monobank.ua/jar/9tbJNeWg6U
send.monobank.ua
Безпечний переказ коштів
Надсилайте безкоштовно та безпечно кошти
Devs World
Друзі нам не вистачає 4к грн на інфузомат. Сьогодні треба забрати. Будь ласка докиньте https://send.monobank.ua/jar/2y8VDJwkz7
Доречі інфузомат ми купили. Дякую усім хто допоміг
Звіт https://t.me/uahfund/6/3189
Звіт https://t.me/uahfund/6/3189
Telegram
Andrey Nikishaev in Ukraine Animal Help
Друзі купили інфузомат в притулок
Друзі, нам до вечора треба зібрати 14к грн на дуже важливі ліки від ФІП 2 котикам.
Буду дуже вдячний якщо зможете щось закинути
https://send.monobank.ua/jar/9tbJNeWg6U
Буду дуже вдячний якщо зможете щось закинути
https://send.monobank.ua/jar/9tbJNeWg6U
send.monobank.ua
Безпечний переказ коштів
Надсилайте безкоштовно та безпечно кошти
❤1
Написал книгу на базе долгого разговора вечером. О жизни о спасении животных о нашей цивилизации в целом. Буду благодарен за рецензию
❤1🤝1