Gopnik consists of 3 daemons and a number of utilities. Daemons are dispatcher, render and prerenderslave. Dispatcher handles requests from users. It checks cache for requested tile and returns the tile to client or orders render to render it. Render and prerenderslave maintain pool of mapnik instances (or other rendering tools). Render and prerenderslave are very similar, but used differently. Render is used by dispatcher daemon for dynamic rendering. Prerenderslave used by prerender utility.
Scheme of tile server components:
Request sequence diagram:
Prerendering is a process of filling tile cache by a plan. See utils page for details.