diff --git a/docs/index.rst b/docs/index.rst
index 91666bedeb2..265d1362586 100644
--- a/docs/index.rst
+++ b/docs/index.rst
@@ -97,6 +97,7 @@ The Rasa Core dialogue engine
:caption: Developer Documentation
migrations
+ tracker_stores
brokers
docker
changelog
diff --git a/docs/tracker_stores.rst b/docs/tracker_stores.rst
new file mode 100644
index 00000000000..726168db872
--- /dev/null
+++ b/docs/tracker_stores.rst
@@ -0,0 +1,116 @@
+.. _tracker_store:
+
+
+Tracker Stores
+==============
+
+All conversations are stored within a `tracker store`.
+Rasa Core provides implementations for different store types out of the box.
+If you want to use another store, you can also build a custom tracker store by extending the `TrackerStore` class.
+
+.. contents::
+
+InMemoryTrackerStore (default)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+:Description:
+ `InMemoryTrackerStore` is the default tracker store. It is used if no other tracker store is configured.
+ It stores the conversation history in memory.
+
+ .. note:: As this store keeps all history in memory the entire history is lost if you restart Rasa Core.
+
+:Configuration:
+ To use the `InMemoryTrackerStore` no configuration is needed.
+
+
+RedisTrackerStore
+~~~~~~~~~~~~~~~~~~
+
+:Description:
+ `RedisTrackerStore` can be used to store the conversation history in `Redis `_.
+ Redis is a fast in-memory key-value store which can optionally also persist data.
+
+:Configuration:
+ To set up Rasa Core with Redis the following steps are required:
+
+ 1. Start your Redis instance
+ 2. Add required configuration to your `endpoints.yml`
+
+ .. code-block:: yaml
+
+ tracker_store:
+ store_type: redis
+ url:
+ port:
+ db:
+ password:
+
+ 3. To start the Rasa Core server using your configured Redis instance,
+ add the :code:`--endpoints` flag, e.g.:
+
+ .. code-block:: bash
+
+ python -m rasa_core.run --core models/dialogue --endpoints endpoints.yml
+:Parameters:
+ - ``url`` (default: ``localhost``): The url of your redis instance
+ - ``port`` (default: ``6379``): The port which redis is running on
+ - ``db`` (default: ``0``): The number of your redis database
+ - ``password`` (default: ``None``): Password used for authentication
+ (``None`` equals no authentication)
+ - ``record_exp`` (default: ``None``): Record expiry in seconds
+
+MongoTrackerStore
+~~~~~~~~~~~~~~~~~
+
+:Description:
+ `MongoTrackerStore` can be used to store the conversation history in `Mongo `_.
+ MongoDB is a free and open-source cross-platform document-oriented NoSQL database.
+
+:Configuration:
+ 1. Start your MongoDB instance.
+ 2. Add required configuration to your `endpoints.yml`
+
+ .. code-block:: yaml
+
+ tracker_store:
+ store_type: mongod
+ url:
+ db:
+ username:
+ password:
+
+ 3. To start the Rasa Core server using your configured MongoDB instance,
+ add the :code:`--endpoints` flag, e.g.:
+
+ .. code-block:: bash
+
+ python -m rasa_core.run --core models/dialogue --endpoints endpoints.yml
+:Parameters:
+ - ``url`` (default: ``mongodb://localhost:27017``): URL of your MongoDB
+ - ``db`` (default: ``rasa``): The database name which should be used
+ - ``username`` (default: ``0``): The username which is used for authentication
+ - ``password`` (default: ``None``): The password which is used for authentication
+ - ``collection`` (default: ``conversations``): The collection name which is
+ used to store the conversations
+
+Custom Tracker Store
+~~~~~~~~~~~~~~~~~~~~
+
+:Description:
+ If you require a tracker store which is not available out of the box, you can implement your own.
+ This is done by extending the base class `TrackerStore`.
+
+ .. autoclass:: rasa_core.tracker_store.TrackerStore
+
+:Steps:
+ 1. Extend the `TrackerStore` base class
+ 2. Adapt the code in :code:`rasa_core.run.py` to use your custom tracker store.
+
+ .. code-block:: python
+
+ [...]
+ _agent = load_agent(cmdline_args.core,
+ interpreter=_interpreter,
+ endpoints=_endpoints,
+ tracker_store=CustomTrackerStore(...))
+ [...]