anchor.diff:  ====
   JavaScript support is scheduled for Funcatron 0.3.0
   ====
  -
  -Funcatron is broken into a series of pieces:
  +* CLR (Common Language Runtime). Run .Net assemblies in Mono (scheduled for Funcatron 0.4.0)
  +
  +
  +== Network 
  +
  +Funcatron has a series of discrete components, all of which are packaged as https://docker.com[Docker]
  +components:
   
   * Frontend -- the code the recieves the incoming request.
   * Message Queue -- the medium of communication among the system components.
   * Tron -- the control system that knows what
   * Runner -- The code that dequeues requests and runs the function associated with the request.
   
  -[plantuml]
  -----
  +The components communicate via network as follows:
  +
  +[plantuml]
  +----
  +skinparam handwritten true
  +
  +
  +() "Upload/Enable" as Operator
  +
  +() "HTTPS Proxy" as Proxy
  +
  +node "Message Queue" as MQ
  +
  +package "Public Facing" {
  +    [Frontend]
  +}
  +
  +node {
  +    [Tron]
  +    [Runner]
  +}
  +
  +
  +Proxy -> [Frontend] : "HTTP port 80"
  +
  +[Frontend] <--> MQ : Stomp
  +
  +[Tron] <--> MQ : AMQP
  +
  +Note left of [Frontend]: Multiple instances
  +
  +[Frontend] -> [Runner] : "HTTP port 4000"
  +
  +[Runner] -> [Tron] : "HTTP port 3000"
  +
  +Note left of [Runner] : Multiple instances\nAuto-scaled
  +
  +Note left of [Tron] : One instance
  +
  +Note left of MQ : Cluster
  +
  +Note left of Operator : Access to control\nFuncatron cluster
  +
  +
  +[Runner] <--> MQ : AMQP
  +
  +Operator -> [Tron] : "HTTP port 3000"
  +----
  +
  +In the current implementation, here is the actual technology used:
  +
  +* Frontend -- http://openresty.org/en/[OpenResty] with Lua scripts that enqueue the requests
  +  and dequeue the response
  +* Message Queue -- http://www.rabbitmq.com/[RabbitMQ]
  +* Tron -- JVM code (Clojure and Java)
  +* Runner -- JVM code that uses https://en.wikipedia.org/wiki/Java_Classloader[classloaders] to
  +            load JVM Func Bundles. For other languages, a new process will be kicked off for each
  +            Func Bundle
  +
  +### Request Sequence Diagram
  +
  +Incoming HTTP requests are handled as follows:
  +
  +
  +[plantuml]
  +----
  +skinparam handwritten true
   
     browser  -> "Front End": HTTP Reqest
     "Front End" -> "Front End": Consult Route Table
  
positive.code:   message_queue <-- Tron: Route Table
    openresty <-- message_queue: Route Table
  ----
  
negative.code:   no need to set up harnesses that simulate or provide the other end of a switch.
  
  
  == Funcatron Pieces and Packaging
  
  In Funcatron, user code is referred to as Funcs. Funcs are bundled together
  along with routing descriptors in a single file that's called a _Func Bundle_.
  