Redis Cache-Aside in Spring Boot: Measured Latency and Stampede FixesA cache hit took 2.24 ms vs 53.54 ms, yet 100 concurrent misses made 100 DB reads, even with @Cacheable(sync = true). Single flight and a Redis lock fixed it, measured on real Redis.32 min read·gowthammuthuvel.hashnode.dev1d ago
JWT + Role-Based Access in Spring Security: Refresh Tokens Without the FootgunsRotation with reuse detection, ROLE_ vs SCOPE_ mapping, and the permitAll() trap, all tested on Spring Boot 4.1.2. Replaying an old refresh token revoked 2 tokens and killed the session.20 min read·gowthammuthuvel.hashnode.dev4d ago
FastAPI `def` vs `async def`: When Your Endpoint Blocks EverythingTen concurrent 0.5 s sleeps: async def + time.sleep took 5016.7 ms and made /ping sit at p50 450.7 ms. Plain def and await asyncio.sleep both finished around 0.5 s with /ping under 2 ms.12 min read·gowthammuthuvel.hashnode.devNov 6
Retrying fetch in Node.js the Right Way: Backoff, Retry-After, DeadlinesTested against a deliberately flaky local server: err.cause codes, HTTP-date Retry-After, AbortSignal.any deadlines and a 200-client outage27 min read·gowthammuthuvel.hashnode.dev1NNov 2
Idempotency Keys in Spring Boot: Making POST Safe to Retry20 identical POSTs, 1 order: a tested Spring Boot idempotency filter with the key row in the same transaction, and the race it fixes.18 min read·gowthammuthuvel.hashnode.devOct 30