+Message Queues are used for routing and storing information across
+processes on one machine or several in a LAN. Somewhat like email.
+*** Using Python since 1995
+*** graphics, metadata, pipelines
+multiple news publishers, single receiver
+message orientation, queuing, routing (including point-to-point and
+publish-and-subscribe), reliability and security.
+Messages, not connections.
+*** program registers a service
+*** routes hardware abstraction layer (HAL) msgs
+"disable screen saver when I watch a movie"
+"switch chat status from panel applet"
+* AMQP: Advanced Message Queuing Protocol
+** interoperability: wire level, not just API (vs: JMS)
+** connection w/ user+auth
+** channel, virtual, per-thread
+** exchange: router recv msgs. named, typed
+*** properties: passive, durable, auto-delete
+** queues: holds msgs. named, properties, no types
+** message: unnamed. Header, opaque body
+** binding: exch->queue mapping
+*** fanout (=broadcast), direct, topic matching
+** message: header(key), body (opaque)
+** types: fanout, direct, topic, others
+** extra features: persistent, ack, auto distribute?
+** no exchanges & bindings, => links
+** addresses are first-class entities
+** service locations in DNS
+*** multiple servers: round-robin. Tricky for development.
+** no exchanges, now "queues + links"
+** addresses now first class entry
+** help() is really good!