Rate limiting an API the right way: token buckets, sliding windows, and Redis | TechTrio Blog