|  | @@ -42,44 +42,66 @@ comes in the form of a separate service called a *message broker*.
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  There are several choices available, including:
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -* :ref:`broker-rabbitmq`
 | 
	
		
			
				|  |  | +RabbitMQ
 | 
	
		
			
				|  |  | +--------
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -`RabbitMQ`_ is feature-complete, stable, durable and easy to install.
 | 
	
		
			
				|  |  | +`RabbitMQ`_ is feature-complete, stable, durable and easy to install. It's an excellent choice for a production environment. Detailed information about using RabbitMQ:
 | 
	
		
			
				|  |  | +    
 | 
	
		
			
				|  |  | +    :ref:`broker-rabbitmq`
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -If you are using Ubuntu or Debian you can install RabbitMQ by executing this
 | 
	
		
			
				|  |  | +.. _`RabbitMQ`: http://www.rabbitmq.com/
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +If you are using Ubuntu or Debian install RabbitMQ by executing this
 | 
	
		
			
				|  |  |  command::
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      $ sudo apt-get install rabbitmq-server
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  When the command completes the broker is already running in the background,
 | 
	
		
			
				|  |  | -ready to move messages for you.
 | 
	
		
			
				|  |  | +ready to move messages for you: ``Starting rabbitmq-server: SUCCESS``.
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -And don't worry if you're not running Ubuntu or Debian,
 | 
	
		
			
				|  |  | -you can go to this website to find similarly simple installation instructions
 | 
	
		
			
				|  |  | -for other platforms, including Microsoft Windows:
 | 
	
		
			
				|  |  | +And don't worry if you're not running Ubuntu or Debian, you can go to this
 | 
	
		
			
				|  |  | +website to find similarly simple installation instructions for other
 | 
	
		
			
				|  |  | +platforms, including Microsoft Windows:
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      http://www.rabbitmq.com/download.html
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -* :ref:`broker-redis`
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +Redis
 | 
	
		
			
				|  |  | +-----
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  `Redis`_ is also feature-complete, but is more susceptible to data loss in
 | 
	
		
			
				|  |  | -the event of abrupt termination or power failures.
 | 
	
		
			
				|  |  | +the event of abrupt termination or power failures. Detailed information about using Redis:
 | 
	
		
			
				|  |  | +    
 | 
	
		
			
				|  |  | +    :ref:`broker-redis`
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +.. _`Redis`: http://redis.io/
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +Using a database
 | 
	
		
			
				|  |  | +----------------
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +Using a database as a message queue is not recommended, but can be sufficient
 | 
	
		
			
				|  |  | +for very small installations.  Your options include:
 | 
	
		
			
				|  |  | +    
 | 
	
		
			
				|  |  |  * :ref:`broker-sqlalchemy`
 | 
	
		
			
				|  |  |  * :ref:`broker-django`
 | 
	
		
			
				|  |  | +* :ref:`broker-mongodb`
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -Using a database as a message queue is not recommended, but can be sufficient
 | 
	
		
			
				|  |  | -for very small installations.  Celery can use the SQLAlchemy and Django ORM.
 | 
	
		
			
				|  |  | +If you're already using a Django database for example, using it as your
 | 
	
		
			
				|  |  | +message broker can be convenient while developing even if you use a more
 | 
	
		
			
				|  |  | +robust system in production.
 | 
	
		
			
				|  |  | +                         
 | 
	
		
			
				|  |  | +Other brokers
 | 
	
		
			
				|  |  | +-------------
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -* and more.
 | 
	
		
			
				|  |  | +In addition to the above, there are other transport implementations
 | 
	
		
			
				|  |  | +to choose from, including
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -In addition to the above, there are several other transport implementations
 | 
	
		
			
				|  |  | -to choose from, including :ref:`broker-mongodb`, :ref:`broker-django`,
 | 
	
		
			
				|  |  | -:ref:`broker-sqlalchemy`, and :ref:`Amazon SQS <broker-sqs>`.
 | 
	
		
			
				|  |  | +* :ref:`Amazon SQS <broker-sqs>`
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -.. _`RabbitMQ`: http://www.rabbitmq.com/
 | 
	
		
			
				|  |  | -.. _`Redis`: http://redis.io/
 | 
	
		
			
				|  |  | -.. _`Transport Comparison`: http://kombu.rtfd.org/transport-comparison
 | 
	
		
			
				|  |  | +See also `Transport Comparison`_.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +.. _`Transport Comparison`: http://kombu.readthedocs.org/en/latest/introduction.html#transport-comparison
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  .. _celerytut-installation:
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -184,7 +206,7 @@ use a result backend, which is detailed in the next section.
 | 
	
		
			
				|  |  |  Keeping Results
 | 
	
		
			
				|  |  |  ===============
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -If you want to keep track of the tasks state, Celery needs to store or send
 | 
	
		
			
				|  |  | +If you want to keep track of the tasks' states, Celery needs to store or send
 | 
	
		
			
				|  |  |  the states somewhere.  There are several
 | 
	
		
			
				|  |  |  built-in result backends to choose from: `SQLAlchemy`_/`Django`_ ORM,
 | 
	
		
			
				|  |  |  `Memcached`_, `Redis`_, AMQP (`RabbitMQ`_), and `MongoDB`_ -- or you can define your own.
 |