It’s a combination of things. One this is for a proof of concept client demo where we are investigating replace traffic manager and Azure App Gateways with CloudFlare Argo Tunnels w/ Load Balancing. We have a free tier account and don’t have a problem for paying for more origins, but going enterprise is unfeasible due to the timeline of the client demo (early July).
The second thing is load and utilization. It is less about performance, and load balancing, and more about automatic failover. We would like to have a single health check for all of the microservices and have them fail over to another cluster at the same time. Since this is for a client demo/PoC traffic utilization would be minimal (requests in the hundreds per day at most). Keeping the cluster origins together would help with our multi-master DBs together and keeping data consistent. Our code is still immature (as is for most PoC code) and we cannot guarantee health check failures for all services when we trigger an outage / taking our DBs offline. Keeping the origins together and having a single health check would be the best way to ensure a simple failover for demo purposes. That said for production this should be revisited or it might make sense to use an API gateway type solution (Istio/Envoy, Ambassador, Kong, etc) which is impossible given the timeline.
The best solution for now is having a single nginx ingress (which would help with a single health check and keeping failover simple), the second best would be increasing the number of origins to either 8 or 12, however creating a enterprise account for a demo environment for 2 weeks would be a hassle for us as well as CloudFlare itself. Not to mention the additional complication of ensuring all services to fail and trigger a full failover.