I'll try to give you the quick rundown of the setup (as I'm familiar with it).

Basically, we have a very large storage of MP3s here at the office. They are all ripped at 192kbps. Once a CD is ripped, it is then transcoded down to the different bitrates of our streams. Every week this is sent to our network partner (was Akamai, now Limelight). This is cached on machines all over the world.

When a user makes a request for a radio station, it contacts our servers and we return a setlist. Then, the jukebox makes a request for the first song. This request is redirected to the closest server that has that song cached. If it's not cached, then the local server will contact our main content server and retrieve the data.

As for how the data is served, I'm not too sure on the method. From what I've heard, we server up the most significant bits first, followed by the least significant bits. Don't know if that makes sense, but I think that's how it works. We also cache bits locally on the machine. You can increase, decrease, or turn this off from the settings menu.

When it comes to personalization, we use our recommendation info (based on anonymous user play data) to relate artists together. If we see a pattern of Pearl Jam listeners liking Stone Temple Pilots, we'll relate the two.

The system is quite a bit more complicated than that, but that is a quick overview.
_________________________
__________________ Scott MKIIa 10GB - 2.0b11 w/Hijack MKIIa 60GB - 2.0 final w/Hijack