# Tracker Stores

All conversations are stored within a tracker store. Rasa Open Source 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
- [Tracker Stores](https://legacy-docs-v1.rasa.com/1.9.4/api/tracker-stores/#tracker-stores)
  - [InMemoryTrackerStore (default)](https://legacy-docs-v1.rasa.com/1.9.4/api/tracker-stores/#inmemorytrackerstore-default)
  - [SQLTrackerStore](https://legacy-docs-v1.rasa.com/1.9.4/api/tracker-stores/#sqltrackerstore)
  - [RedisTrackerStore](https://legacy-docs-v1.rasa.com/1.9.4/api/tracker-stores/#redistrackerstore)
  - [MongoTrackerStore](https://legacy-docs-v1.rasa.com/1.9.4/api/tracker-stores/#mongotrackerstore)
  - [DynamoTrackerStore](https://legacy-docs-v1.rasa.com/1.9.4/api/tracker-stores/#dynamotrackerstore)
  - [Custom Tracker Store](https://legacy-docs-v1.rasa.com/1.9.4/api/tracker-stores/#custom-tracker-store)

## 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 the Rasa server.
### Configuration
To use the `InMemoryTrackerStore` no configuration is needed.

## SQLTrackerStore
### Description
`SQLTrackerStore` can be used to store the conversation history in an SQL database. Storing your trackers this way allows you to query the event database by sender_id, timestamp, action name, intent name and typename.
### Configuration
To set up Rasa Open Source with SQL the following steps are required:
1. Add required configuration to your `endpoints.yml`:
   
   ```
   tracker_store:
       type: SQL
       dialect: "postgresql"  # the dialect used to interact with the db
       url: ""  # (optional) host of the sql db, e.g. "localhost"
       db: "rasa"  # path to your db
       username:  # username used for authentication
       password:  # password used for authentication
       query: # optional dictionary to be added as a query string to the connection URL
         driver: my-driver
   ```
2. To start the Rasa server using your SQL backend, add the `--endpoints` flag, e.g.:
   
   ```
   rasa run -m models --endpoints endpoints.yml
   ```
... (other stores configuration follows similarly)
