Rasa Server - Sanic

I see that Sanic framework is used for Rasa Server

Is there a reason for choosing Sanic over other python frameworks/server?

If I recall correctly, prior to version 1.0, flask server was used. Sanic is a drop-in (sort of) replacement for flask with async requests so, that may be the reason.

Our reasons for using Sanic is the same as anyone’s reason to switch to an asynchronous server. You can perform other tasks while waiting for I/O without using multithreading.

Are the libraries for the implementation of the tracker stores given out-of-the-box by rasa inherently async? I have a suspicion that they are not

The main parts of RASA have been converted to use the async style of programming. External services like action server and NLG are now being called using async http. Nice.

So, when will the tracker store be converted to async style? I would expect the main tracker store methods to be async (get_or_create_tracker, save, …), to allow us to implement a tracker store using an async database library for instance…

1 Like