Greeting I am currently making a routing web app using Or-tools calculation and visualizing everything using Streamlit.
For pushing this apps into deployment stage ( on AWS cloud) is there any benefit to converting all the calculation function on the backend of streamlit apps to a FastAPI call or should I just keep it in streamlit for now ?
The calculation involved interacting with a hosted database , an OSRM routing engine running in the same machine and it tooks around 5 mins to get a desired solution from Or-tools optimizer.
I am not very knowledgeable in web development so sorry for the technical question.
I’ve done both ways and prefer a separate REST API backend, especially for long running jobs on the API server. You will however have the issue of notifying Streamlit that calculation results are ready. I’ve dealt with that by storing results on the server in a database such as SQLite, and having a suitable TTL on the cached load data method in Streamlit, or having a refresh button which clears the cache and reruns Streamlit, which will get the latest results. These solutions are a bit clunky but work fine for certain use cases. Another advantage of having a (Fast)API is you can serve other clients, not just Streamlit clients.
If your calculations can be run continuously then Streamlit need only get the latest results stored in the DB.
Thanks for stopping by! We use cookies to help us understand how you interact with our website.
By clicking “Accept all”, you consent to our use of cookies. For more information, please see our privacy policy.
Cookie settings
Strictly necessary cookies
These cookies are necessary for the website to function and cannot be switched off. They are usually only set in response to actions made by you which amount to a request for services, such as setting your privacy preferences, logging in or filling in forms.
Performance cookies
These cookies allow us to count visits and traffic sources so we can measure and improve the performance of our site. They help us understand how visitors move around the site and which pages are most frequently visited.
Functional cookies
These cookies are used to record your choices and settings, maintain your preferences over time and recognize you when you return to our website. These cookies help us to personalize our content for you and remember your preferences.
Targeting cookies
These cookies may be deployed to our site by our advertising partners to build a profile of your interest and provide you with content that is relevant to you, including showing you relevant ads on other websites.