Jitsi meet autoscale web/prosody and jvb

I have just setup successful autoscale both web/prosody and jvb on AWS ECS, so I will share some Idea here.
We know that horizontal autoscale JVBs can be archived with docker on K8S (or you can refer to my last repo here GitHub - congthang1/jitsi-kubernetes: Jitsi deployment on Kubernetes with JVB autoscale and OCTO region enabled)
The next bottleneck is the Meet part (web/prosody/jicofo) that we know prosody is single thread and can handle around 200-300 maximum concurrents (some optimized can bring to 500?) But that still the end point of a shard.
To handle more user we need to add more shard and using HAproxy (stick room) to distribute traffic to shards and jvbs.
Manually we can add more shards on a cluster to get new shard working and this can lead to not a real high available of a platform as we know 200 people is just 1 or 2 room full.

So the question now is how to autoscale the Meet (prosody/jicofo/web) horizontally during on demand?

So the solution is AWS ECS + Service Discovery + route53 private and Haproxy (with stick room setup)

This is very nice post on how to setup service discovery on AWS ECS: Run your ECS cluster with service discovery and HAProxy for $8 a month | tamas.dev

When you got the prosody autoscale, to even more efficient you can setup jvb to connect to multiple prosody, meaning every jvb will connect to every prosody so that you can start from very small resources and autoscale to unlimited room.

So the idea is:

AWS ELB (optional, for TLS) → HAproxy instance (EC2/fargate) → Autoscale Web/prosody/jicofo with service discovery (AWS Fargate) → Autoscale JVBs (kubernetes or AWS ECS)

AWS support ECS anywhere that you can run task by connecting to other instance on other cloud (In my case I use cloud on my region to put jvb there to have good banwidth and still can control on ECS).
When you put jvb outside of the prosody instance, you need a script to update domain on route53 everytime a new prosody started. On jvb you can just put like 10 domain prosody-1.yourdomain.com, prosody-2.yourdomain.comprosody-10.yourdomain.com and when domain available jvb will automatically register that prosody and new prosody can have jvb to put new meeting.

So hope this can give someone the idea to setup the very high available scale jitsi meet.