

R language was created to make data analysis faster. R is slow – It was designed for convenient data analysis, not for web apps JavaScript promises are different thanks to the event loop mechanism, which features fully asynchronous I/O and worker threads. Also, the promises package can be used to improve responsiveness, but it is still fundamentally different than promises in JavaScript. You have to use workarounds to provide it.įor example, you can do this by serving multiple instances of the app. Multithreading allows for application responsiveness, and by design, R doesn’t. This means all users connected to one R process will block each other. The language itself is just slow – it was designed for data analysts with convenience in mind.R is a single-threaded programming language.

Scaling R Shiny applications is hard, and there are two main reasons why: Want to track how users use your R Shiny App? Consider these 3 options for monitoring user adoption. Continue reading to learn a few alternatives to scaling Shiny apps. Regardless, the main aspect you should focus on is how you serve the application. There are many ways to optimize a Shiny app like using promises for non-blocking access, profvis for finding bottlenecks, and shiny modules for well-structured code, etc. It should be reliable and work fast for many concurrent users. From that point, this app becomes a tool used in production by many people. When a data science team creates a Shiny app, sometimes it becomes very popular. Shiny is a great tool for fast prototyping, but what about scaling? There are many alternatives to scaling Shiny apps.
