Mantén el contador de stock en un único lugar atómico y decreméntalo de forma atómica — un DECR de Redis (o un script Lua) que devuelva el valor restante. Si el resultado es < 0, esa request perdió; la base de datos nunca es la barrera de concurrencia. Todo lo demás consiste en descartar las otras 999.000 requests de forma barata.
