Rasa X Production Architecture

Hi everyone, I’m a long time listener, but a first time caller :wink: I’m truly a fan of your work and really appreciate everything you’re doing here.

My questions are:

  1. Would it be possible to explain in a bit more detail the role of the non-Rasa containers in the production Docker? Specifically Redis, PostgreSQL, Rabbit, etc.?

  2. Also, would it be possible to reuse these ‘infrastructure’ containers for several Rasa deployments in parallel? i.e. can I setup multiple rasa-x & rasa-production container sets (each set running its own model) that use the same database in parallel?

Would it be possible to explain in a bit more detail the role of the non-Rasa containers in the production Docker? Specifically Redis, PostgreSQL, Rabbit, etc.?

We’re working on updated architecture documentation. In the mean time:

  • Redis: One of several options that can be used for the Rasa tracker store
  • PostgresSQL: Can be used as either the tracker store but it is also the default database for Rasa X
  • RabbitMQ: Started by Rasa X and used as the event broker message queue for events from Rasa

Also, would it be possible to reuse these ‘infrastructure’ containers for several Rasa deployments in parallel? i.e. can I setup multiple rasa-x & rasa-production container sets (each set running its own model) that use the same database in parallel?

No, they need their own stack.

Thanks Greg.

I’m assuming that this is the tracker store used for the production docker, right? Why is Redis preferable over other types of tracker stores?

Why do we need an event broker message queue? What function does it serve that Rasa can’t handle by itself?

yes, the production Rasa.

If you want to use Rasa X, it needs to get a copy of the events from Rasa. You learn more about Rasa X in the Masterclass Videos and the announcement video

Pls can you help me with this. I intend to build an RASA architecture for my organization.

  1. if we are using Docker for both RASA sdk and RASA X, how would they communicate?
  2. If MongoDB is used as the tracker store, must it be in a different docker? 3, how and what is the essense of event brokers Please assist explain in simple terms. Thanks

Hi Enoch and welcome to the forum.

You’ll find a architecture diagram in our docs here.

  1. if we are using Docker for both RASA sdk and RASA X, how would they communicate?

Rasa OSS sends the tracker events to Rasa X via RabbitMQ. Rasa X also communicates with Rasa OSS via http.

  1. If MongoDB is used as the tracker store, must it be in a different docker? 3, how and what is the essense of event brokers Please assist explain in simple terms. Thanks

No. You configure the location of the MongoDB to be used in the endpoints.yml file. The options are described here

Greg