anchor.diff:  == Protocol Overview
   
   POSTAL is a message based protocol with messages modeled as structured messages
  -encoded using `transit+json` encoding. This protocol intends to be a low-level
  -transport layer for build graphql like endpoints. And it is not replacement for
  -websockets or other bi-directional transports/protocols.
  +encoded using `transit+json` serialization format.
  +
  +WARNING: this document is under design and is considered in pre-alpha state.
  +
  +
  +=== Rationale
  +
  +The tipical web application follows the api REST architecture, but the main
  +problem of that is that is bound directly to the HTTP semantics that are not
  +always coherent or not always clear how to use.
   
   The main objective of this protocol is take aside the http rest api semantics and
  -build own ones on top of http protocol.
  +build own ones on top of http protocol. Allowing build rich and powerful api's
  +without any restrictions of the the REST API's.
  +
  +The general idea is borowed from link:https://facebook.github.io/relay/. So is
  +this a ideal protocol for build a declarative queries and use this transport
  +protocol for client<->server communication.
   
   It comes with a set of predefined messages with specified semantics but that not
   limits the user to define own messages on top of that protocol.
  -
  -WARNING: this document is under design and is considered in pre-alpha state.
   
   
   === Messages
  
positive.code: = POSTAL - Protocol Spec.
  Andrey Antukh, <niwi@niwi.nz>
  Version 1.0
  :toc:
  
negative.code: TBD
  
  
  == Clients & Servers
  
  === Clients
  
  - link:https://github.com/funcool/postal[postal (clojurescript)]
  
  === Servers
  
  - link:https://github.com/funcool/catacumba[catacumba (clojure)]
  
  
  == Recommendations
  
  === Start using http2/spdy
  