Fresher, Faster, Stronger: Player FM is Near Real-Time

Player FM is now receiving new episodes faster. Much faster. Whereas the average lag — from publisher upload to appearance on the site — was previously 2-3 hours, it’s now about 5 minutes. Generally, it will be a maximum of 15 minutes and in many cases, it will be just a few seconds. Furthermore, the new setup is scaleable; as the site grows, the update lag should remain constant.

Previously, Player FM’s server was doing what most podcatcher apps do: polling. Every hour or two, it would check all feeds for an update. Unlike normal podcatchers, Player FM has thousands of feeds to check, so the process was resource-intensive and as the site grew, there were more feeds to check and the updating got slower.

Polling is inefficient. Most of the time, you get the same result: nothing happened. But you have to keep checking in case one day, something does happen.

With the new architecture, Player FM no longer has to poll. Instead, Player FM’s servers receive a notification when a feed has changed, and that’s it. It happens using the PubSubHubbub protocol and SuperFeedr. (I contributed a few patches to Superfeedr’s Rack module to make this happen.)

The server is still performing occasional polls as a precaution; but generally, all updates will now happen via direct notification to Player FM’s servers.