4
votes

Please note: Although I mention Java 8 I think the answer here is really language-agnostic.


I'm building a simple Java 8 web service that will aggregate RSS feeds across various topics and make their content available by request. I've never worked with RSS before and all the videos I have found are just about how to generate an RSS file for your lame blog, and all the articles I have found on "Java and RSS" are just examples of parsing XML.

I'm curious: does RSS work as push or pull?

  • By "push" I mean: say "RSS feed A" publishes an update to their RSS file on their service (say http://rss-a.example.com/rss/news.rss). Does their server somehow send a message to my backend, alerting my backed that an update is ready?; or
  • By "pull" I mean: is my backend just responsible for pinging all of the RSS feed URLs every n seconds and pulling in new content as its published?

Also, how do Java libraries like ROME snap into either push/pull architecture above?

2

2 Answers

11
votes

RSS is just a data format. Nothing more. It neither pushes nor pulls.

It is typically accessed by polling (and the format includes the ability to specify how often it should be polled as metadata).

This doesn't prevent you from creating a (or finding an existing) a service which you can send the data to a client instead of having them request it over HTTP. Nor one where you send a message informing them that the feed has updated and they should make a new HTTP request.

0
votes

If you are writing software that needs a real-time notification of when an RSS or Atom feed has changed, you can use the protocols WebSub or RssCloud.

WebSub was once called PubSubHubbub. There's a GitHub account with more information on the protocol and some code for PHP and WordPress that uses it.