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.