Novice programmers rarely see the value in externalized configuration. It's tedious and doesn't result in an immediate payoff. That means this task is often overlooked or done poorly, if at all. For ...
GET /api/products (first call) ~500 ms (DB) ~500 ms (DB, cold) GET /api/products (repeat call) ~500 ms (DB) < 5 ms (Redis) GET /api/products/1 (repeat) ~500 ms (DB) < 5 ms (Redis) PUT/DELETE product ...