Request is passed to n number of Device Proxies running.
HTTP headers are inserted (possibly from cached WURFL or OpenDDR lookups).
Device Proxy has the option of inserting Cookies into the HTTP response
which can cache the Device Lookup (for subsequent requests HAProxy (1)
could use these cookie values to skip DeviceProxy completely for the
lifetime of the Cookie.)
DeviceProxy reverse proxies back to HAProxy with HTTP headers inserted.

HAProxy inspects the HTTP headers & cookies received and selects appropriate
backend application for the request. HAProxy can have a default fallback
backend. If the Cookie is already set then the DeviceProxies are skipped.

The Backend application renders the request with a template set suitable for
the given HTTP request.

Note

By default DeviceProxy only caches the lookup in Memcache, not in the Cookie.