Frontik is a simple xml aggregator for Yandex-like page generation workflow.
Frontik is developed and mantained by me (Andrey Tatarinov, elephantum@yandex.ru) while working at hh.ru as a part of infrastructure development tasks.
user frontik backend1 backend2 ...
==== ======= ======== ========
| | | |
|------>| | |
| | | |
| (initiate requests) |
| |-------->| |
| |---------+------->|
| |----------------------->...
| | | |
| (wait) | |
| |<-----------------------...
| |<--------| |
| |<--------+--------|
| | | |
| (xsl) | |
| |--\ | |
| | | xsl | |
| |<-/ | |
| | | |
| (done) | |
|<------| | |
| | | |
Typically page generation process is split into several steps:
- 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.