tldr: vibe overengineered and badly configured platform crashes under minimal load.
500 concurrent users is not "production traffic".
Nothing to learn here, apart from: this could've been one server engine, one database, and vanillajs. Let's repeat our usual mantra before building anything: you're not building current(!) Facebook/Netflix from scratch, stop having 10+ product dependencies, 20 services and 6 different languages in your toy project.
In the 90s, people thought about the c10k problem, which is how to handle 10000 connections.
In those days, this 2GB server would have been a dream to have and probably had moved the needle to 20k, 50k or whatever the limit is. You only get problems with 500 connections on a modern machine if you are really really bad at handling each request.
tldr: vibe overengineered and badly configured platform crashes under minimal load.
500 concurrent users is not "production traffic".
Nothing to learn here, apart from: this could've been one server engine, one database, and vanillajs. Let's repeat our usual mantra before building anything: you're not building current(!) Facebook/Netflix from scratch, stop having 10+ product dependencies, 20 services and 6 different languages in your toy project.
Fair point on the server being undersized. Stack is actually just Node
In the 90s, people thought about the c10k problem, which is how to handle 10000 connections.
In those days, this 2GB server would have been a dream to have and probably had moved the needle to 20k, 50k or whatever the limit is. You only get problems with 500 connections on a modern machine if you are really really bad at handling each request.
An AI slop article about the limitations of vibe coding. How ironic.