Technically, it doesn't seem very challenging at all. This is the perfect usage case for caching. The feeds aren't user specific, are they?
If not user specific: user requests feed for xyz.com: try to pull from cache. If there's a miss grab the feed from xyz.com, store to cache, and serve (be sure to set cache to expire in however often is necessary). If cache hit, you're done!
You can throw in extras, like make the cache semi fault tolerant by storing the latest feed to a DB. If your cache ever dies, then you can grab from DB to refill the cache.
Beyond that, it's just logging views and subscriptions to feeds.
Am I missing something? I don't actually use feedburner...
To log views, you have to change links to redirect to your service first and then redirect. But, that's not a huge technical hurdle. Other than that, I think you've pretty much summed up the basics. Oh, I guess the other thing they do, is convert direct links to the feed into something nice in the browser, and provide embeddable widgets and doodads. Again, nothing terribly hard about it.
If not user specific: user requests feed for xyz.com: try to pull from cache. If there's a miss grab the feed from xyz.com, store to cache, and serve (be sure to set cache to expire in however often is necessary). If cache hit, you're done!
You can throw in extras, like make the cache semi fault tolerant by storing the latest feed to a DB. If your cache ever dies, then you can grab from DB to refill the cache.
Beyond that, it's just logging views and subscriptions to feeds.
Am I missing something? I don't actually use feedburner...