Skip to content
This repository has been archived by the owner on Feb 28, 2024. It is now read-only.
/ frontik Public archive
forked from haxo/frontik

XScript like XML aggregator in python+tornado

Notifications You must be signed in to change notification settings

curlup/frontik

 
 

Repository files navigation

What is Frontik?

Frontik is a simple xml aggregator for Yandex-like page generation workflow.

Frontik is developed and mantained by me (Andrey Tatarinov, [email protected]) while working at hh.ru as a part of infrastructure development tasks.

How does it work?

user   frontik   backend1 backend2 ...
====   =======   ======== ========
  |       |         |        |
  |------>|         |        |
  |       |         |        |
  |    (initiate requests)   |
  |       |-------->|        |
  |       |---------+------->|
  |       |----------------------->...
  |       |         |        |
  |    (wait)       |        |
  |       |<-----------------------...
  |       |<--------|        |
  |       |<--------+--------|
  |       |         |        |
  |    (xsl)        |        |
  |       |--\      |        |
  |       |  | xsl  |        |
  |       |<-/      |        |
  |       |         |        |
  |    (done)       |        |
  |<------|         |        |
  |       |         |        |

Typically page generation process is split into several steps:

  1. initiate requests: frontik makes several http-requests to underlying backends.
  • wait for either response or timeout for each backend request
  • aggregate everything we got into one xml document, apply given xsl transformation
  • return the result of transformation to user.

Where is it used?

  • Some of the pages of hh.ru are served using frontik
  • hh.jsx.ru is served entirely using frontik, with sources available.

About

XScript like XML aggregator in python+tornado

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 98.0%
  • Shell 1.2%
  • D 0.8%