So answer your question about technical limitations @alio I’ll leave you with an older, outdated graphic I created to show a high level overview of our Strapi application stack for the usage I detailed above:
We used to use all bare metal hardware as a reference but I had PFSense sitting as the edge firewall and handling most of our vlans, ect (blah blah network stuff)
But we had a virtual/floating IP address managed by HAProxy to load balance our Nginx servers (HAProxy + Keepalived).
From there we had 3 virtual machines used to handle the Strapi clusters (pm2 clusters), thus each VM had about 4 CPU cores, and 6GB of RAM to run a pm2 cluster of 4 Strapi backend instances per VM. Total of about 12 Strapi backend nodes. Our Strapi admin panel is deployed to each of the Nginx hosts and served statically to allow us to dynamically scale the backend as needed.
Each Strapi instance connects to the floating IP of the two ProxySQL nodes (active/passive or active/failover, however you want to see it). The ProxySQL also splits the read/write to the database so that we could run a multi-write MariaDB Galera cluster.
Your database is going to be the absolute largest piece of your Strapi stack as your traffic grows, at the time I made this graphic I was handling anywhere from half a million to over 3 million API requests in a month. This clearly made me analyse my database cluster carefully, and each of those database nodes was severely over powered for what I needed (16 CPU cores, 32 GB of RAM running on 8x SSDs in RaidZ2) but it ensured the confidence in my stack that my database was not going to be the bottleneck.
Typically when I’m looking at deploying applications, I focus very heavily on the hosting itself and the performance, while Strapi isn’t perfect with relational schema in RDS it is getting better and as Strapi itself is a strict schema, relational application. I have full faith in running it on relational database applications (specifically in my use case). Given I also have a deep background in linux systems engineering and was a Jr. network engineer for a time this is my area of strength and I know not everyone using Strapi has that knowledge to lean on. I hope that I can assist everyone in our community with their devops questions and converting those questions into relatable and searchable resources in our documentation or even just here on the forums.
I will clearly stress that the example I gave above is not the “normal” requirement for every deployment, and shouldn’t be treated as such I went way overboard in my infrastructure design out of habit