Hey guys! I’m looking for some feedback on some concerns I’m having about scalability of Adonis on a particular application that I’m writing and would like some recommendations or reassurance.
I am using Adonis as a centralized API for a multi-purpose business application that will service anywhere from 10-20, up to potentially 500+, active users at a given time. This will replace a legacy system that I wrote in an now-defunct application platform and I’m trying to plan for a more modular, scalable, and fault tolerant foundation.
My concern is that I’m putting too much on a single API with database handling, websockets, scheduled tasks, events, mail, SMS, etc. on a single threaded node application. I’ve considered splitting out functional tasks to two separate Adonis instances where one would handle taking requests, interacting with the database, and websockets and the other would handle scheduled tasks and worker tasks such as sending email, SMS, processing, etc with Redis communicating between the two. I also don’t believe hardware is a concern as the front-end UI, Adonis API, and database(s) are on their own servers with good hardware (64Gb RAM, Xeon Gold 6126).
Are there any recommendations for the best way to handle this? I like having everything centralized but I don’t want the performance bottlenecks that I had with the previous system. Should I be concerned or can Adonis handle this sort of load just fine as is?