Rate limiting is not a trivial task. Finding the exact count at the second level becomes difficult due to round trip time. In your case, as you've specified 100 as max count, Larval guarantees that it will process at the max 100 messages in a second.
Each method call will add an addition of 1-5 Ms in execution time unless your Redis is always providing a response in microsecond(s).
The best bet could be, you benchmark your Redis calls and see how many locks you can acquire using the Laravel throttle primitive. As a basic test set the throttle to 10_000 and simply run a print statement and check how many calls you can make (you should do in production), this number will give you the maximum number of the locks you can acquire in a second.
If you can acquire more than 100 locks in a second then nothing should stop you from using the primitive you have mentioned.
For testing, you can do a couple of things like
- Find p99/p95/p90 response time of the said API
- Add a dummy API/method in your systems, API/method can simply take either p99/p95/p90 seconds. For simplicity, it can just sleep for the required interval.
Now you can hit your dummy method/API, here you can do all sorts of counting to identify if you're exceeding throttle limit, you can use millisecond for logging and aggregate over seconds to identify any issue, run this for an hour or so.