Grout is an HTTP-based front proxy that delegates portions of a url path space to other web applications. This allows for a web application to be composed of a collection of micro-services.
Beyond routing based on url, language or ip-based region, Grout provides downstream services with a unique per-request X-Grout-Id
and a per-session X-Grout-Session
header for simple cross-service sessions.
Presently 99designs.com is composed of 2-3 different web applications. Varnish sits in front of these web applications and dispatches requests to the appropriate backend based on some complicated regular expressions and a large chunk of complicated VCL.