A traffic-shaping algorithm controls request volume or rate so network activity conforms to specified limits. A semaphore can keep at most 10 requests running, but requests may still arrive in a burst; traffic shaping addresses that timing problem. section 11.3
Use the distinction to choose the right control:
- Use a semaphore to limit concurrent requests and start a replacement when one finishes. section 11.3
- Add a leaky-bucket or token-bucket implementation when bursts must also be limited over time. section 11.3

