These docs are for version 1.x of Rasa Open Source.

## User Guide

- [Installation](https://legacy-docs-v1.rasa.com/1.8.3/user-guide/installation/)
- [Tutorial: Rasa Basics](https://legacy-docs-v1.rasa.com/1.8.3/user-guide/rasa-tutorial/)
- [Tutorial: Building Assistants](https://legacy-docs-v1.rasa.com/1.8.3/user-guide/building-assistants/)
- [Command Line Interface](https://legacy-docs-v1.rasa.com/1.8.3/user-guide/command-line-interface/)
- [Architecture](https://legacy-docs-v1.rasa.com/1.8.3/user-guide/architecture/)
- [Messaging and Voice Channels](https://legacy-docs-v1.rasa.com/1.8.3/user-guide/messaging-and-voice-channels/)
- [Evaluating Models](https://legacy-docs-v1.rasa.com/1.8.3/user-guide/evaluating-models/)
- [Validate Data](https://legacy-docs-v1.rasa.com/1.8.3/user-guide/validate-files/)
- [Configuring the HTTP API](https://legacy-docs-v1.rasa.com/1.8.3/user-guide/configuring-http-api/)
- [Deploying Your Rasa Assistant](https://legacy-docs-v1.rasa.com/1.8.3/user-guide/how-to-deploy/)
- [Cloud Storage](https://legacy-docs-v1.rasa.com/1.8.3/user-guide/cloud-storage/)

## NLU

- [About](https://legacy-docs-v1.rasa.com/1.8.3/nlu/about/)
- [Using NLU Only](https://legacy-docs-v1.rasa.com/1.8.3/nlu/using-nlu-only/)
- [Training Data Format](https://legacy-docs-v1.rasa.com/1.8.3/nlu/training-data-format/)
- [Choosing a Pipeline](https://legacy-docs-v1.rasa.com/1.8.3/nlu/choosing-a-pipeline/)
- [Language Support](https://legacy-docs-v1.rasa.com/1.8.3/nlu/language-support/)
- [Entity Extraction](https://legacy-docs-v1.rasa.com/1.8.3/nlu/entity-extraction/)
- [Components](https://legacy-docs-v1.rasa.com/1.8.3/nlu/components/)

## Core

- [About](https://legacy-docs-v1.rasa.com/1.8.3/core/about/)
- [Stories](https://legacy-docs-v1.rasa.com/1.8.3/core/stories/)
- [Domains](https://legacy-docs-v1.rasa.com/1.8.3/core/domains/)
- [Responses](https://legacy-docs-v1.rasa.com/1.8.3/core/responses/)
- [Actions](https://legacy-docs-v1.rasa.com/1.8.3/core/actions/)
- [Reminders and External Events](https://legacy-docs-v1.rasa.com/1.8.3/core/reminders-and-external-events/)
- [Policies](https://legacy-docs-v1.rasa.com/1.8.3/core/policies/)
- [Slots](https://legacy-docs-v1.rasa.com/1.8.3/core/slots/)
- [Forms](https://legacy-docs-v1.rasa.com/1.8.3/core/forms/)
- [Retrieval Actions](https://legacy-docs-v1.rasa.com/1.8.3/core/retrieval-actions/)
- [Interactive Learning](https://legacy-docs-v1.rasa.com/1.8.3/core/interactive-learning/)
- [Fallback Actions](https://legacy-docs-v1.rasa.com/1.8.3/core/fallback-actions/)
- [Knowledge Base Actions](https://legacy-docs-v1.rasa.com/1.8.3/core/knowledge-bases/)

## Conversation Design

- [Dialogue Elements](https://legacy-docs-v1.rasa.com/1.8.3/dialogue-elements/dialogue-elements/)
- [Small Talk](https://legacy-docs-v1.rasa.com/1.8.3/dialogue-elements/small-talk/)
- [Completing Tasks](https://legacy-docs-v1.rasa.com/1.8.3/dialogue-elements/completing-tasks/)
- [Guiding Users](https://legacy-docs-v1.rasa.com/1.8.3/dialogue-elements/guiding-users/)

## API Reference

- [Action Server](https://legacy-docs-v1.rasa.com/1.8.3/api/action-server/)
- [HTTP API](https://legacy-docs-v1.rasa.com/1.8.3/api/http-api/)
- [Jupyter Notebooks](https://legacy-docs-v1.rasa.com/1.8.3/api/jupyter-notebooks/)
- [Agent](https://legacy-docs-v1.rasa.com/1.8.3/api/agent/)
- [Custom NLU Components](https://legacy-docs-v1.rasa.com/1.8.3/api/custom-nlu-components/)
- [Rasa SDK](https://legacy-docs-v1.rasa.com/1.8.3/api/rasa-sdk/)
- [Events](https://legacy-docs-v1.rasa.com/1.8.3/api/events/)
- [Tracker](https://legacy-docs-v1.rasa.com/1.8.3/api/tracker/)
- [Tracker Stores](https://legacy-docs-v1.rasa.com/1.8.3/api/tracker-stores/)
- [Event Brokers](https://legacy-docs-v1.rasa.com/1.8.3/api/event-brokers/)
- [Lock Stores](https://legacy-docs-v1.rasa.com/1.8.3/api/lock-stores/)
- [Training Data Importers](https://legacy-docs-v1.rasa.com/1.8.3/api/training-data-importers/)
- [Featurization of Conversations](https://legacy-docs-v1.rasa.com/1.8.3/api/core-featurization/)
- [TensorFlow Configuration](https://legacy-docs-v1.rasa.com/1.8.3/api/tensorflow_usage/)
- [Migration Guide](https://legacy-docs-v1.rasa.com/1.8.3/migration-guide/)
- [Rasa Open Source Change Log](https://legacy-docs-v1.rasa.com/1.8.3/changelog/)

## Migrate from (beta)

- [Dialogflow](https://legacy-docs-v1.rasa.com/1.8.3/migrate-from/google-dialogflow-to-rasa/)
- [Wit.ai](https://legacy-docs-v1.rasa.com/1.8.3/migrate-from/facebook-wit-ai-to-rasa/)
- [LUIS](https://legacy-docs-v1.rasa.com/1.8.3/migrate-from/microsoft-luis-to-rasa/)
- [IBM Watson](https://legacy-docs-v1.rasa.com/1.8.3/migrate-from/ibm-watson-to-rasa/)

## Reference

- [Glossary](https://legacy-docs-v1.rasa.com/1.8.3/glossary/)

# Lock Stores

Rasa uses a ticket lock mechanism to ensure that incoming messages for a given conversation ID are processed in the right order, and locks conversations while messages are actively processed. This means multiple Rasa servers can be run in parallel as replicated services, and clients do not necessarily need to address the same node when sending messages for a given conversation ID.

## InMemoryLockStore (default)

### Description

`InMemoryLockStore` is the default lock store. It maintains conversation locks within a single process.

### Note

This lock store should not be used when multiple Rasa servers are run parallel.

### Configuration

To use the `InMemoryTrackerStore` no configuration is needed.

## RedisLockStore

### Description

`RedisLockStore` maintains conversation locks using Redis as a persistence layer. This is the recommended lock store for running a replicated set of Rasa servers.

### Configuration

To set up Rasa with Redis the following steps are required:

1. Start your Redis instance
2. Add required configuration to your `endpoints.yml`

```yaml
lock_store:
    type: "redis"
    url: <url of the redis instance, e.g. localhost>
    port: <port of your redis instance, usually 6379>
    password: <password used for authentication>
    db: <number of your database within redis, e.g. 0>
```

3. To start the Rasa Core server using your Redis backend, add the `--endpoints` flag, e.g.:

```bash
rasa run -m models --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)
- `use_ssl` (default: `False`): Whether or not the communication is encrypted
