Basic conecpts

News is basically an asynchronous web content (e.g. HTML, RSS or Atom) subscription engine which consists of 4 major components: Model, Backend, Scheduler and Reporter.

Model

Model represents your subscription schedules and fetched web contents which will be persisted in your own database. News currently supports Django and SQLAlchemy models out of the box.

Backend

Backend serves as an interface between your models and rest of News components, for example, Scheduler or Reporter. News currently supports Django and SQLAlchemy backends out of the box.

Reporter

Reporter is literally a reporter who will be dispatched and discover any web content news based on it’s assigned Schedule . News provides URLReporter, RSSReporter and AtomReporter out of the box. You can easily write or extend your own reporters by subclassing genric reporters such as TraversingReporter or FeedReporter too.

Scheduler

Scheduler is a main component that will schedule your subscriptions and dispatch Reporter on each of their reserved time. It can also be persisted between processes or threads via redis-powered Persister component. Usually Scheduler should run on it’s own process.