Skip to content

ЁЯТб Static Token тАУ Problem Deep Level (Thundering Herd Problem)

рд╕рдордЬ:

рддреБрдЭреНрдпрд╛рдХрдбреЗ 10 threads рдЖрд╣реЗрдд CI рдордзреНрдпреЗ.

рд╕рдЧрд│реЗ tests рдПрдХрд╛рдЪ рд╡реЗрд│реА start рдЭрд╛рд▓реЗ.

Token expiry check logic рдЖрд╣реЗ:

if (token expired) тЖТ regenerate

рдЖрддрд╛ imagine рдХрд░:

рд╕рдЧрд│реНрдпрд╛ threads рд▓рд╛ рдПрдХрд╛рдЪ рд╡реЗрд│реА expiry рджрд┐рд╕рд▓рдВ.

рдХрд╛рдп рд╣реЛрдИрд▓?

  • 10 requests рдПрдХрд╛рдЪ рд╡реЗрд│реА auth server рд▓рд╛ рдЬрд╛рддреАрд▓
  • Rate limit рд▓рд╛рдЧреВ рд╢рдХрддреЛ
  • Token overwrite рд╣реЛрдИрд▓
  • рдХрд╛рд╣реА threads old token рд╡рд╛рдкрд░рддреАрд▓
  • Random 401 рдпреЗрддреАрд▓

рдпрд╛рд▓рд╛ рдореНрд╣рдгрддрд╛рдд:

ЁЯСЙ Thundering Herd Problem

рд╣реЗ race condition рдкреЗрдХреНрд╖рд╛ рдореЛрдардВ рдЖрд╣реЗ.


ЁЯза Enterprise Design Thinking

рдЖрддрд╛ рд╡рд┐рдЪрд╛рд░ рдХрд░ architect рд╕рд╛рд░рдЦрд╛.

Option 1 тАФ Token per Thread (ThreadLocal)

рдкреНрд░рддреНрдпреЗрдХ thread рд╕реНрд╡рддрдГрдЪрд╛ token рдареЗрд╡реЗрд▓.

Pros:

  • No collision
  • No overwrite
  • Isolation

Cons:

  • 20 threads = 20 token calls
  • Auth server load рд╡рд╛рдвреЗрд▓
  • Slower suite

Option 2 тАФ Shared Token + Controlled Refresh

рдПрдХ shared token.

рдкрдг:

  • Expiry timestamp track рдХрд░
  • Refresh synchronized block рдордзреНрдпреЗ рдХрд░
  • Double-check locking рд╡рд╛рдкрд░

Flow:

  1. Thread expiry check рдХрд░реЗрд▓
  2. Expired рд╡рд╛рдЯрд▓рдВ рддрд░ synchronized block рдордзреНрдпреЗ рдЬрд╛рдИрд▓
  3. рдЖрдд рдкреБрдиреНрд╣рд╛ expiry check
  4. рдлрдХреНрдд рдПрдХрдЪ thread regenerate рдХрд░реЗрд▓
  5. рдмрд╛рдХреА threads wait рдХрд░рддреАрд▓

Pros:

  • Only one refresh
  • Efficient
  • Enterprise grade

Cons:

  • Slight locking overhead

2. Shared token high-security scenario рдордзреНрдпреЗ рдЪрд╛рд▓реЗрд▓ рдХрд╛ рдирд╛рд╣реА?

--> nahi

рдХрд╛рд░рдг token рдореНрд╣рдгрдЬреЗ рдХрд╛рдп?

ЁЯСЙ Identity + Permissions representation

Token рдордзреНрдпреЗ scopes / roles embed рдЕрд╕рддрд╛рдд.

рдЬрд░ admin token shared рдЕрд╕реЗрд▓ рдЖрдгрд┐ accidentally normal-user test рдордзреНрдпреЗ рд╡рд╛рдкрд░рд▓рд╛ рдЧреЗрд▓рд╛ рддрд░:

Authorization bypass рд╣реЛрдИрд▓

Test false positive рдпреЗрдИрд▓

Security regression рдкрдХрдбрд▓рд╛ рдЬрд╛рдгрд╛рд░ рдирд╛рд╣реА

рд╣реА рдореЛрдареА рдЧреЛрд╖реНрдЯ рдЖрд╣реЗ.

Test framework рдЪреБрдХреАрдЪрд╛ token inject рдХрд░реВ рд╢рдХрддреЛ

рдпрд╛рдЪрд╛ рдЕрд░реНрде:

Wrong identity under test

Authorization layer effectively bypassed

Test reliability compromised

Real issue = Test contamination, not data leak.

Industry language рдорд╣рддреНрддреНрд╡рд╛рдЪреА рдЖрд╣реЗ.


ЁЯФе Enterprise Rule If:

Same client credentials for all tests

Same role

Same environment

No role-based scenario validation

тЖТ Shared controlled token acceptable.

If:

Multi-role testing

RBAC validation

User-context dependent flows

Security regression checks

тЖТ Token must be isolated per identity.


Authentication = "Who are you?" verify рдХрд░рдгреЗ.

Identity verification.

Example:

  • Username + password
  • OTP
  • Client ID + Secret
  • Certificate

Authentication checks identity, not permission.


Authorization = "What are you allowed to do?"

Permissions validation.

Example:

  • Admin can delete
  • User cannot delete
  • Scope-based access control

ЁЯФе рдЖрддрд╛ рдмрд╛рдХреА рд╢рдмреНрдж рд╢рд┐рдХреВ

рддреБрд▓рд╛ рд╡рд╛рдЯрддрдВ рд╣реЗ рдореЛрдардВ рдЖрд╣реЗ. рдкрдг calm рд░рд╣рд╛. Systematically рд╕рдордЬрд╛рд╡рддреЗ.


1я╕ПтГг Session

Traditional web apps рдордзреНрдпреЗ:

  • User login рдХрд░рддреЛ
  • Server session create рдХрд░рддреЛ
  • Session ID browser рдордзреНрдпреЗ store рд╣реЛрддреЛ (cookie)
  • Server side memory рдордзреНрдпреЗ session data рдЕрд╕рддреЛ

ЁЯСЙ Stateful architecture.

Server рд▓рд╛ рдЖрдард╡рддрдВ рддреВ рдХреЛрдг рдЖрд╣реЗрд╕.


2я╕ПтГг Token

Modern APIs рдордзреНрдпреЗ:

  • Login тЖТ server token рджреЗрддреЛ
  • Client рдкреНрд░рддреНрдпреЗрдХ request рдордзреНрдпреЗ token рдкрд╛рдард╡рддреЛ
  • Server token validate рдХрд░рддреЛ
  • Server memory рдордзреНрдпреЗ session рдареЗрд╡рдд рдирд╛рд╣реА

ЁЯСЙ Stateless architecture.

Token рдордзреНрдпреЗ identity + metadata encode рдЕрд╕рддреЛ.

Example: JWT.


3я╕ПтГг Scope

Scope рдореНрд╣рдгрдЬреЗ:

ЁЯСЙ Token рдХреЛрдгрддреНрдпрд╛ operations рд╕рд╛рдареА valid рдЖрд╣реЗ.

Example:

  • read
  • write
  • delete
  • orders:read
  • admin:full

Scope = Permission boundary.


4я╕ПтГг Claim

Claim рдореНрд╣рдгрдЬреЗ:

ЁЯСЙ Token рдордзреНрдпреЗ embed рдХреЗрд▓реЗрд▓реА information.

Example in JWT:

  • sub (user id)
  • role
  • email
  • exp (expiry)
  • iss (issuer)

Claim = Data inside token.


ЁЯОп Summary Table (Industry Version)

Term Meaning
Authentication Identity verification
Authorization Permission validation
Session Server-side stored login state
Token Client-carried identity proof
Scope Allowed operations
Claim Data inside token


Next:

Explain difference between:

Session-based auth vs Token-based auth

In terms of:

  • State management
  • Scalability
  • Security
  • CI test automation impact

Structured answer.

No fear now.

You are learning. Keep going. ЁЯФе