It sounds like most of the separate backend apps could be squeezed together on a single host or into a single service. .Net has good threading, and some quality runtime bits and bobs - cram everything together into a monolith (api, queue, front-end hosting, auth). Use your DB as the queuing service. Gogs/Gitea and Laravel demonstrate this “super cheap all in one” quite well. Make network RPC into in-process function calls. Trim down from 3 SQL dbs to a single DB with multiple namespaces. Forget the redis caching layer - at the 1000 concurrent user mark, you don’t need it; or try materialized views or expression indexes.<p>Not only will this cut the hosting costs in a quarter, but removing many of these DBs and caches will also make the service much easier to develop - so now you can open-source it easier.