Websites/Mozilla.org/Archive/Design Implementation/RSS: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
Line 12: Line 12:


We probably want a '''database-based cache''' over a file-based cache, because it gives faster results.
We probably want a '''database-based cache''' over a file-based cache, because it gives faster results.
'''TTL''' of the cached items can be relatively high (higher on the sub-pages than on the front page), because we offer the feeds to open up an additional window into the community and not to be a direct, always-up-to-date information resource.


== Implementation ==
== Implementation ==

Revision as of 21:32, 14 May 2009

What we want to do

We want a feed parser that

  • pulls latest feed info from feeds.mozilla.com for front page
  • pulls latest feed info from news.rdf (for now) for front page
  • optionally: creates mash ups of multiple feeds on sub-pages (e.g. Our causes > Education)

How to do it

Mozilla.org has a lot of visitors, so we probably want to cache feed items for some time to a) be nice to the feed provider and b) get better performance.

We probably want a database-based cache over a file-based cache, because it gives faster results.

TTL of the cached items can be relatively high (higher on the sub-pages than on the front page), because we offer the feeds to open up an additional window into the community and not to be a direct, always-up-to-date information resource.

Implementation

There are several different options (subject to evaluation):

Write a parser from scratch

  • + maybe better performance
  • + would hopefully be exactly what we want
  • - more development time
  • - not as well tested as other solutions

Zend Framework

  • New BSD license
  • very modular
  • well maintained, active development
  • DB abstraction layer, cache handling

PEAR

  • XML_Feed_Parser
    • LGPL license
    • No maintainer
  • XML_RSS
    • PHP license
    • No active development (last version from 06)

SimplePie

  • BSD license
  • Caching out of the box (flat file only right now, but could be overloaded with own DB-class)
  • Meshing of multiple feeds out of the box
  • Problems with some feeds, but workarounds exist
  • Nice API

Other