Hacking the Thundering Herd
You know what the Thundering Herd issue is, right? Basically, you have a whole bunch of different events that are gated on a single resource — a database for example. If all those events fire at the same time, then they all go thundering along to the database at the same time, trying to get in, and causing the database to choke. Ideally, you’d get the events to fire one at a time, but sometimes, well, shit happens. My first exposure to this was way in the past I was the CTO of a phone company (•). Imagine if you will hundreds of thousands of VoIP phones scattered around the country, each of them connected to our data-center. Each of these phones registered themselves to our service, basically letting our service know where the phone was located on the InterTubes, and which User the phone was associated with. Whenever there was a call to/from a phone, we’d spin up a process for the associated User that did a bunch-a housekeeping — think fun...